Colegio Técnico Salesiano


    Nombres: Juan Diego Páez, Bryan Torres.




    Tema: Fundamentos Básicos sobre sistemas operativos.




    Profesor: Santiago Durazno




    Materia: Sistemas Informáticos Mono-usuario y Multiusuario




    Curso: Tercero “E2”.




    Año lectivo: 2009-2010
1. ¿Qué es sistema operativo?


Un sistema operativo es un software de sistema, es decir, un conjunto de programas de
computación destinados a realizar muchas tareas entre las que destaca la administración de los
dispositivos periféricos.
Cuando se aplica voltaje al procesador de un dispositivo electrónico, éste ejecuta un reducido
código en lenguaje ensamblador localizado en una dirección concreta en la ROM (dirección de
reset) y conocido como reset code, que a su vez ejecuta una rutina con la que se inicializa el
hardware que acompaña al procesador. También en esta fase suele inicializarse el controlador de
las interrupciones. Finalizada esta fase se ejecuta el código de arranque (startup code), también
código en lenguaje ensamblador, cuya tarea más importante es ejecutar el programa principal del
software de la aplicación.
Un sistema operativo se puede encontrar en la mayoría de los aparatos electrónicos que utilicen
microprocesadores para funcionar, ya que gracias a éstos podemos entender la máquina y que
ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, auto-radios,
computadoras, radios, etc.).

              2. Sistemas por lotes sencillos.


Los primeros equipos grandes y caros que se controlaban desde una consola.
 Dispositivos de entrada comunes eran: lectores de tarjetas y unidades de cinta.
 Los usuarios no interactuaban directamente con el computador.(Sólo el operador).
 La función del SO era transferir el control automáticamente de un trabajo al siguiente.
El SO estaba siempre residente en memoria.
 Para agilizar el procesamiento se agrupaban los trabajos comunes en lotes y se introducían al
computador como un grupo.


              3. Sistemas de tiempos compartidos.


Tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por más de
una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de forma
concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En este
aspecto, es similar a la capacidad de multitareas que es común en la mayoría de los
microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia
generalmente con el acceso de varios usuarios a computadoras más grandes y a organizaciones de
servicios, mientras que la multitarea relacionada con las microcomputadoras implica la realización
de múltiples tareas por un solo usuario.

              4. Sistemas de lotes Multi-Programados


La técnica de permitir varios programas en memoria se la llama multiprogramación.
La multiprogramación debe permitir tomar decisiones por los usuarios, por lo cual son
relativamente complejos.
5. Sistema de computadores personales


El Sistema Operativo DOS (Disk Operating System): Comúnmente llamado MS DOS es un sistema
mono-usuario y mono-tarea, es decir, sólo puede utilizarlo un usuario a la vez y ejecutar un único
programa. Fue creado para la gama de PC que en 1981 lanzó la IBM, con el cual se desarrolló y se
implantó el sistema operativo de disco para la familia de las computadoras personales.
Los comandos de uso frecuente se conocen como comandos internos y se mantienen residentes
en memoria, ya que están disponibles siempre que se necesiten; algunos de estos comandos son:
copy, dir, eraser, type, rename, date, time, chkdir, rmdir, mkdir, etc.
Los comandos que se encuentran en directorio DOS, como son: format, diskcopy, chkdisk, edlin,
etc., sólo se llaman en memoria cuando se invocan, y por eso reciben el nombre comandos
externos.

              6. Sistemas Paralelos.


Hoy la tendencia es hacia los sistemas multiprocesador. Es decir, aquellos que cuentan con más de
un procesador. Permiten mejorar el throughput (productividad). No obstante debemos considerar
un overhead (carga) adicional por sincronizar estos procesadores y los recursos compartidos a los
que acceden.

              7. Sistemas distribuidos.


Los sistemas distribuidos comparte la carga entre varios procesadores. Las razones para su uso
son:
· Compartir recursos.
· Aceleración de los cálculos
· Confiabilidad
· Comunicación


              8. Sistema operativo de tiempo real


Un sistema operativo de tiempo real (SOTR o RTOS -Real Time Operating System en inglés), es un
sistema operativo que ha sido desarrollado para aplicaciones de tiempo real. Como tal, se le exige
corrección en sus respuestas bajo ciertas restricciones de tiempo. Si no las respeta, se dirá que el
sistema ha fallado. Para garantizar el comportamiento correcto en el tiempo requerido se necesita
que el sistema sea predecible (determinista).
Usado típicamente para aplicaciones integradas, normalmente tiene las siguientes características:
No utiliza mucha memoria
Cualquier evento en el soporte físico puede hacer que se ejecute una tarea
Multi-arquitectura (puertos de código para otro tipo de UCP)
Muchos tienen tiempos de respuesta predecibles para eventos electrónicos
En la actualidad hay un debate sobre qué es tiempo real. Muchos sistemas operativos de tiempo
real tienen un programador y diseños de controladores que minimizan los periodos en los que las
interrupciones están deshabilitadas, un número llamado a veces duración de interrupción. Muchos
incluyen también formas especiales de gestión de memoria que limitan la posibilidad de
fragmentación de la memoria y aseguran un límite superior mínimo para los tiempos de asignación
y retirada de la memoria.
Un ejemplo temprano de sistema operativo en tiempo real a gran escala fue el denominado
«programa de control» desarrollado por American Airlines e IBM para el sistema de reservas
Sabre.

              9. Como Funciona un Sistema Operativo


       Los sistemas operativos controlan diferentes procesos de la computadora. Un proceso
importante es la interpretación de los comandos que permiten al usuario comunicarse con el
ordenador. Algunos intérpretes de instrucciones están basados en texto y exigen que las
instrucciones sean tecleadas. Otros están basados en gráficos, y permiten al usuario comunicarse
señalando y haciendo clic en un icono. Por lo general, los intérpretes basados en gráficos son más
sencillos, pero muchos usuarios expertos prefieren los intérpretes de instrucciones basados en
texto                   porque                 son                   más                 potentes.
Los sistemas operativos pueden ser de tarea única o multitarea. Los sistemas operativos de tarea
única, más primitivos, sólo pueden manejar un proceso en cada momento. Por ejemplo, cuando la
computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a
nuevas         instrucciones     hasta        que        se       termine       la      impresión.
Todos los sistemas operativos modernos son multitarea y pueden ejecutar varios procesos
simultáneamente. En la mayoría de los ordenadores sólo hay una UCP; un sistema operativo
multitarea crea la ilusión de que varios procesos se ejecutan simultáneamente en la UCP. El
mecanismo que se emplea más a menudo para lograr esta ilusión es la multitarea por
segmentación de tiempos, en la que cada proceso se ejecuta individualmente durante un periodo
de tiempo determinado. Si el proceso no finaliza en el tiempo asignado, se suspende y se ejecuta
otro proceso. Este intercambio de procesos se denomina conmutación de contexto. El sistema
operativo se encarga de controlar el estado de los procesos suspendidos. También cuenta con un
mecanismo llamado planificador que determina el siguiente proceso que debe ejecutarse. El
planificador ejecuta los procesos basándose en su prioridad para minimizar el retraso percibido
por el usuario. Los procesos parecen efectuarse simultáneamente por la alta velocidad del cambio
de                                                                                        contexto.
Los sistemas operativos pueden emplear memoria virtual para ejecutar procesos que exigen más
memoria principal de la realmente disponible. Con esta técnica se emplea espacio en el disco duro
para simular la memoria adicional necesaria. Sin embargo, el acceso al disco duro requiere más
tiempo que el acceso a la memoria principal, por lo que el funcionamiento del ordenador resulta
más lento.

              10. Estructuras de entrada y salida


EL HARDWARE

EL SOFTWARE

Definiendo cada una de las partes tendremos:
Software: Del ingles "soft" blando y "ware" artículos, se refiere al conjunto de instrucciones
(programa) que indican a la electrónica de la maquina que modifique su estado, para llevar a cabo
un proceso de datos; éste se encuentra almacenado previamente en memoria junto con los datos.
El software es un ingrediente indispensable para el funcionamiento del computador. Está formado
por una serie de instrucciones y datos, que permiten aprovechar todos los recursos que el
computador tiene, de manera que pueda resolver gran cantidad de problemas. Un computador en
si, es sólo un conglomerado de componentes electrónicos; el software le da vida al computador,
haciendo que sus componentes funcionen de forma ordenada.
El software es un conjunto de instrucciones detalladas que controlan la operación de un sistema
computacional.
Hardware:
Del ingles "hard" duro y "ware" artículos, hace referencia a los medios físicos (equipamiento
material) que permiten llevar a cabo un proceso de datos, conforme lo ordenan las instrucciones
de un cierto programa, previamente memorizado en un computador.
Conjunto de dispositivos físicos que forman un computador. El equipo que debe permitir a un
usuario hacer trabajos (escribir textos, sacar cuentas), escuchar música, navegar en Internet, hacer
llamadas telefónicas, ver películas, etc.
 En el hardware encontramos la memoria del computador, los circuitos que se encuentran dentro
del gabinete, la disquetera, el teclado, la impresora, el monitor, el mouse.
Arquitectura de un computador.
Un equipo debe cumplir con algunas características para que cumpla la función de un
computador:
a) Tener una CPU o UCP (Unidad Central de Proceso)
b) Memoria principal RAM y ROM
c) Memoria Auxiliar (disco duro y otros dispositivos de almacenamiento de información)
d) Dispositivos de entrada y salida (teclado, mouse, monitor, impresora)



              11. JERARQUÍA DEL ALMACENAMIENTO.


Podemos considerar que la memoria del computador es un array lineal de bytes. Por ello existe un
mecanismo que traduce direcciones lógicas (usadas por el programa) en direcciones físicas. Esta
tarea de traducción la realiza el Sistema Operativo. Por esta razón, podemos decir que estamos
trabajando en realidad con una memoria virtual.
El rendimiento o eficacia de esta memoria se mide del siguiente modo.
-por el tiempo de acceso a la memoria. Viene marcado por dos parámetros:
- Tiempo de latencia: Tiempo que tarda la memoria en localizar el dato pedido.
- Tiempo de transferencia: Tiempo que tarda la memoria en enviar los datos. Depende del tamaño
de los datos a enviar y del ratio de transferencia (bytes/segundo).
-por el precio. Se atiende a los siguientes puntos:
- Precio por byte.
- Costo por acceso: El costo de leer un bloque de datos viene dado por: costo dispositivo
costo leer bloque = ------------------------
nº accesos por segundo
Estos puntos nos permiten calcular el costo de las operaciones fundamentales de las memorias:
almacenar y recibir/enviar datos. Si se quiere abaratar uno de estos aspectos debemos encarecer
el otro aspecto: se consigue capacidad a costa de tiempo de acceso.
12. Protección por hardware


La protección por hardware se efectúa cuándo una unidad utiliza una perilla o adhesivo para que
la grabadora no pueda modificar sus datos, este es el caso de los diskettes, cintas de video, etc.
Este método era frecuentemente utilizado por las empresas en la grabación de casetes y VHS.
Algunos discos compactos utilizan una especie de anillo para proteger su escritura, esto impide
que la lectora/grabadora solo pueda leer su información pero no modificarla, por el hecho de que
ese anillo bloquea el cabezal de grabación.

              13. Visión General de la Arquitectura de Windows.


Un Sistema Operativo serio, capaz de competir en el mercado con otros como Unix que ya tienen
una posición privilegiada, en cuanto a resultados, debe tener una serie de características que le
permitan ganarse ese lugar. Algunas de estas son:
Que corra sobre múltiples arquitecturas de hardware y plataformas.
Que sea compatible con aplicaciones hechas en plataformas anteriores, es decir que corrieran la
mayoría de las aplicaciones existentes hechas sobre versiones anteriores a la actual, nos referimos
en este caso particular a las de 16-bit de MS-DOS y Microsoft Windows 3.1.
Reúna los requisitos gubernamentales para POSIX (Portable Operating System Interface for Unix).
Reúna los requisitos de la industria y del gobierno para la seguridad del Sistema Operativo.
Sea fácilmente adaptable al mercado global soportando código Unicode.
Sea un sistema que corra y balancee los procesos de forma paralela en varios procesadores a la
vez.
Sea un Sistema Operativo de memoria virtual.

Uno de los pasos más importantes que revolucionó los Sistemas Operativos de la Microsoft fue el
diseño y creación de un Sistema Operativo extensible, portable, fiable, adaptable, robusto, seguro
y compatible con sus versiones anteriores (Windows NT).
Y para ello crearon la siguiente arquitectura modular:



La cual está compuesta por una serie de componentes separados donde cada cual es responsable
de sus funciones y brindan servicios a otros componentes. Esta arquitectura es del tipo cliente –
servidor ya que los programas de aplicación son contemplados por el sistema operativo como si
fueran clientes a los que hay que servir, y para lo cual viene equipado con distintas entidades
servidoras.
Ya creado este diseño las demás versiones que le sucedieron a Windows NT fueron tomando esta
arquitectura como base y le fueron adicionando nuevos componentes.
Uno de las características que Windows comparte con el resto de los Sistemas Operativos
avanzados es la división de tareas del Sistema Operativo en múltiples categorías, las cuales están
asociadas a los modos actuales soportados por los microprocesadores. Estos modos proporcionan
a los programas que corren dentro de ellos diferentes niveles de privilegios para acceder al
hardware o a otros programas que están corriendo en el sistema. Windows usa un modo
privilegiado (Kernel) y un modo no privilegiado (Usuario).
Uno de los objetivos fundamentales del diseño fue el tener un núcleo tan pequeño como fuera
posible, en el que estuvieran integrados módulos que dieran respuesta a aquellas llamadas al
sistema que necesariamente se tuvieran que ejecutar en modo privilegiado (modo kernel). El resto
de las llamadas se expulsarían del núcleo hacia otras entidades que se ejecutarían en modo no
privilegiado (modo usuario), y de esta manera el núcleo resultaría una base compacta, robusta y
estable.
El Modo Usuario es un modo menos privilegiado de funcionamiento, sin el acceso directo al
hardware. El código que corre en este modo sólo actúa en su propio espacio de dirección. Este usa
las APIs (System Application Program Interfaces) para pedir los servicios del sistema.
El Modo Kernel es un modo muy privilegiado de funcionamiento, donde el código tiene el acceso
directo a todo el hardware y toda la memoria, incluso a los espacios de dirección de todos los
procesos del modo usuario. La parte de WINDOWS que corre en el modo Kernel se llama Ejecutor
de Windows, que no es más que un conjunto de servicios disponibles a todos los componentes del
Sistema Operativo, donde cada grupo de servicios es manipulado por componentes que son
totalmente independientes (entre ellos el Núcleo) entre sí y se comunican a través de interfaces
bien definidas.
Todos los programas que no corren en Modo Kernel corren en Modo Usuario. La mayoría del
código del Sistema Operativo corre en Modo Usuario, así como los subsistemas de ambiente
(Win32 y POSIX que serán explicados en capítulos posteriores) y aplicaciones de usuario. Estos
programas solamente acceden a su propio espacio de direcciones e interactúan con el resto del
sistema a través de mensajes Cliente/Servidor.

Conseptos BáSicos De Sistemas Operativos

  • 1.
    Colegio Técnico Salesiano Nombres: Juan Diego Páez, Bryan Torres. Tema: Fundamentos Básicos sobre sistemas operativos. Profesor: Santiago Durazno Materia: Sistemas Informáticos Mono-usuario y Multiusuario Curso: Tercero “E2”. Año lectivo: 2009-2010
  • 2.
    1. ¿Qué essistema operativo? Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computación destinados a realizar muchas tareas entre las que destaca la administración de los dispositivos periféricos. Cuando se aplica voltaje al procesador de un dispositivo electrónico, éste ejecuta un reducido código en lenguaje ensamblador localizado en una dirección concreta en la ROM (dirección de reset) y conocido como reset code, que a su vez ejecuta una rutina con la que se inicializa el hardware que acompaña al procesador. También en esta fase suele inicializarse el controlador de las interrupciones. Finalizada esta fase se ejecuta el código de arranque (startup code), también código en lenguaje ensamblador, cuya tarea más importante es ejecutar el programa principal del software de la aplicación. Un sistema operativo se puede encontrar en la mayoría de los aparatos electrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, auto-radios, computadoras, radios, etc.). 2. Sistemas por lotes sencillos. Los primeros equipos grandes y caros que se controlaban desde una consola. Dispositivos de entrada comunes eran: lectores de tarjetas y unidades de cinta. Los usuarios no interactuaban directamente con el computador.(Sólo el operador). La función del SO era transferir el control automáticamente de un trabajo al siguiente. El SO estaba siempre residente en memoria. Para agilizar el procesamiento se agrupaban los trabajos comunes en lotes y se introducían al computador como un grupo. 3. Sistemas de tiempos compartidos. Tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por más de una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En este aspecto, es similar a la capacidad de multitareas que es común en la mayoría de los microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios a computadoras más grandes y a organizaciones de servicios, mientras que la multitarea relacionada con las microcomputadoras implica la realización de múltiples tareas por un solo usuario. 4. Sistemas de lotes Multi-Programados La técnica de permitir varios programas en memoria se la llama multiprogramación. La multiprogramación debe permitir tomar decisiones por los usuarios, por lo cual son relativamente complejos.
  • 3.
    5. Sistema decomputadores personales El Sistema Operativo DOS (Disk Operating System): Comúnmente llamado MS DOS es un sistema mono-usuario y mono-tarea, es decir, sólo puede utilizarlo un usuario a la vez y ejecutar un único programa. Fue creado para la gama de PC que en 1981 lanzó la IBM, con el cual se desarrolló y se implantó el sistema operativo de disco para la familia de las computadoras personales. Los comandos de uso frecuente se conocen como comandos internos y se mantienen residentes en memoria, ya que están disponibles siempre que se necesiten; algunos de estos comandos son: copy, dir, eraser, type, rename, date, time, chkdir, rmdir, mkdir, etc. Los comandos que se encuentran en directorio DOS, como son: format, diskcopy, chkdisk, edlin, etc., sólo se llaman en memoria cuando se invocan, y por eso reciben el nombre comandos externos. 6. Sistemas Paralelos. Hoy la tendencia es hacia los sistemas multiprocesador. Es decir, aquellos que cuentan con más de un procesador. Permiten mejorar el throughput (productividad). No obstante debemos considerar un overhead (carga) adicional por sincronizar estos procesadores y los recursos compartidos a los que acceden. 7. Sistemas distribuidos. Los sistemas distribuidos comparte la carga entre varios procesadores. Las razones para su uso son: · Compartir recursos. · Aceleración de los cálculos · Confiabilidad · Comunicación 8. Sistema operativo de tiempo real Un sistema operativo de tiempo real (SOTR o RTOS -Real Time Operating System en inglés), es un sistema operativo que ha sido desarrollado para aplicaciones de tiempo real. Como tal, se le exige corrección en sus respuestas bajo ciertas restricciones de tiempo. Si no las respeta, se dirá que el sistema ha fallado. Para garantizar el comportamiento correcto en el tiempo requerido se necesita que el sistema sea predecible (determinista). Usado típicamente para aplicaciones integradas, normalmente tiene las siguientes características: No utiliza mucha memoria Cualquier evento en el soporte físico puede hacer que se ejecute una tarea Multi-arquitectura (puertos de código para otro tipo de UCP) Muchos tienen tiempos de respuesta predecibles para eventos electrónicos En la actualidad hay un debate sobre qué es tiempo real. Muchos sistemas operativos de tiempo real tienen un programador y diseños de controladores que minimizan los periodos en los que las interrupciones están deshabilitadas, un número llamado a veces duración de interrupción. Muchos incluyen también formas especiales de gestión de memoria que limitan la posibilidad de
  • 4.
    fragmentación de lamemoria y aseguran un límite superior mínimo para los tiempos de asignación y retirada de la memoria. Un ejemplo temprano de sistema operativo en tiempo real a gran escala fue el denominado «programa de control» desarrollado por American Airlines e IBM para el sistema de reservas Sabre. 9. Como Funciona un Sistema Operativo Los sistemas operativos controlan diferentes procesos de la computadora. Un proceso importante es la interpretación de los comandos que permiten al usuario comunicarse con el ordenador. Algunos intérpretes de instrucciones están basados en texto y exigen que las instrucciones sean tecleadas. Otros están basados en gráficos, y permiten al usuario comunicarse señalando y haciendo clic en un icono. Por lo general, los intérpretes basados en gráficos son más sencillos, pero muchos usuarios expertos prefieren los intérpretes de instrucciones basados en texto porque son más potentes. Los sistemas operativos pueden ser de tarea única o multitarea. Los sistemas operativos de tarea única, más primitivos, sólo pueden manejar un proceso en cada momento. Por ejemplo, cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión. Todos los sistemas operativos modernos son multitarea y pueden ejecutar varios procesos simultáneamente. En la mayoría de los ordenadores sólo hay una UCP; un sistema operativo multitarea crea la ilusión de que varios procesos se ejecutan simultáneamente en la UCP. El mecanismo que se emplea más a menudo para lograr esta ilusión es la multitarea por segmentación de tiempos, en la que cada proceso se ejecuta individualmente durante un periodo de tiempo determinado. Si el proceso no finaliza en el tiempo asignado, se suspende y se ejecuta otro proceso. Este intercambio de procesos se denomina conmutación de contexto. El sistema operativo se encarga de controlar el estado de los procesos suspendidos. También cuenta con un mecanismo llamado planificador que determina el siguiente proceso que debe ejecutarse. El planificador ejecuta los procesos basándose en su prioridad para minimizar el retraso percibido por el usuario. Los procesos parecen efectuarse simultáneamente por la alta velocidad del cambio de contexto. Los sistemas operativos pueden emplear memoria virtual para ejecutar procesos que exigen más memoria principal de la realmente disponible. Con esta técnica se emplea espacio en el disco duro para simular la memoria adicional necesaria. Sin embargo, el acceso al disco duro requiere más tiempo que el acceso a la memoria principal, por lo que el funcionamiento del ordenador resulta más lento. 10. Estructuras de entrada y salida EL HARDWARE EL SOFTWARE Definiendo cada una de las partes tendremos: Software: Del ingles "soft" blando y "ware" artículos, se refiere al conjunto de instrucciones (programa) que indican a la electrónica de la maquina que modifique su estado, para llevar a cabo un proceso de datos; éste se encuentra almacenado previamente en memoria junto con los datos.
  • 5.
    El software esun ingrediente indispensable para el funcionamiento del computador. Está formado por una serie de instrucciones y datos, que permiten aprovechar todos los recursos que el computador tiene, de manera que pueda resolver gran cantidad de problemas. Un computador en si, es sólo un conglomerado de componentes electrónicos; el software le da vida al computador, haciendo que sus componentes funcionen de forma ordenada. El software es un conjunto de instrucciones detalladas que controlan la operación de un sistema computacional. Hardware: Del ingles "hard" duro y "ware" artículos, hace referencia a los medios físicos (equipamiento material) que permiten llevar a cabo un proceso de datos, conforme lo ordenan las instrucciones de un cierto programa, previamente memorizado en un computador. Conjunto de dispositivos físicos que forman un computador. El equipo que debe permitir a un usuario hacer trabajos (escribir textos, sacar cuentas), escuchar música, navegar en Internet, hacer llamadas telefónicas, ver películas, etc. En el hardware encontramos la memoria del computador, los circuitos que se encuentran dentro del gabinete, la disquetera, el teclado, la impresora, el monitor, el mouse. Arquitectura de un computador. Un equipo debe cumplir con algunas características para que cumpla la función de un computador: a) Tener una CPU o UCP (Unidad Central de Proceso) b) Memoria principal RAM y ROM c) Memoria Auxiliar (disco duro y otros dispositivos de almacenamiento de información) d) Dispositivos de entrada y salida (teclado, mouse, monitor, impresora) 11. JERARQUÍA DEL ALMACENAMIENTO. Podemos considerar que la memoria del computador es un array lineal de bytes. Por ello existe un mecanismo que traduce direcciones lógicas (usadas por el programa) en direcciones físicas. Esta tarea de traducción la realiza el Sistema Operativo. Por esta razón, podemos decir que estamos trabajando en realidad con una memoria virtual. El rendimiento o eficacia de esta memoria se mide del siguiente modo. -por el tiempo de acceso a la memoria. Viene marcado por dos parámetros: - Tiempo de latencia: Tiempo que tarda la memoria en localizar el dato pedido. - Tiempo de transferencia: Tiempo que tarda la memoria en enviar los datos. Depende del tamaño de los datos a enviar y del ratio de transferencia (bytes/segundo). -por el precio. Se atiende a los siguientes puntos: - Precio por byte. - Costo por acceso: El costo de leer un bloque de datos viene dado por: costo dispositivo costo leer bloque = ------------------------ nº accesos por segundo Estos puntos nos permiten calcular el costo de las operaciones fundamentales de las memorias: almacenar y recibir/enviar datos. Si se quiere abaratar uno de estos aspectos debemos encarecer el otro aspecto: se consigue capacidad a costa de tiempo de acceso.
  • 6.
    12. Protección porhardware La protección por hardware se efectúa cuándo una unidad utiliza una perilla o adhesivo para que la grabadora no pueda modificar sus datos, este es el caso de los diskettes, cintas de video, etc. Este método era frecuentemente utilizado por las empresas en la grabación de casetes y VHS. Algunos discos compactos utilizan una especie de anillo para proteger su escritura, esto impide que la lectora/grabadora solo pueda leer su información pero no modificarla, por el hecho de que ese anillo bloquea el cabezal de grabación. 13. Visión General de la Arquitectura de Windows. Un Sistema Operativo serio, capaz de competir en el mercado con otros como Unix que ya tienen una posición privilegiada, en cuanto a resultados, debe tener una serie de características que le permitan ganarse ese lugar. Algunas de estas son: Que corra sobre múltiples arquitecturas de hardware y plataformas. Que sea compatible con aplicaciones hechas en plataformas anteriores, es decir que corrieran la mayoría de las aplicaciones existentes hechas sobre versiones anteriores a la actual, nos referimos en este caso particular a las de 16-bit de MS-DOS y Microsoft Windows 3.1. Reúna los requisitos gubernamentales para POSIX (Portable Operating System Interface for Unix). Reúna los requisitos de la industria y del gobierno para la seguridad del Sistema Operativo. Sea fácilmente adaptable al mercado global soportando código Unicode. Sea un sistema que corra y balancee los procesos de forma paralela en varios procesadores a la vez. Sea un Sistema Operativo de memoria virtual. Uno de los pasos más importantes que revolucionó los Sistemas Operativos de la Microsoft fue el diseño y creación de un Sistema Operativo extensible, portable, fiable, adaptable, robusto, seguro y compatible con sus versiones anteriores (Windows NT). Y para ello crearon la siguiente arquitectura modular: La cual está compuesta por una serie de componentes separados donde cada cual es responsable de sus funciones y brindan servicios a otros componentes. Esta arquitectura es del tipo cliente – servidor ya que los programas de aplicación son contemplados por el sistema operativo como si fueran clientes a los que hay que servir, y para lo cual viene equipado con distintas entidades servidoras. Ya creado este diseño las demás versiones que le sucedieron a Windows NT fueron tomando esta arquitectura como base y le fueron adicionando nuevos componentes. Uno de las características que Windows comparte con el resto de los Sistemas Operativos avanzados es la división de tareas del Sistema Operativo en múltiples categorías, las cuales están asociadas a los modos actuales soportados por los microprocesadores. Estos modos proporcionan a los programas que corren dentro de ellos diferentes niveles de privilegios para acceder al hardware o a otros programas que están corriendo en el sistema. Windows usa un modo privilegiado (Kernel) y un modo no privilegiado (Usuario). Uno de los objetivos fundamentales del diseño fue el tener un núcleo tan pequeño como fuera posible, en el que estuvieran integrados módulos que dieran respuesta a aquellas llamadas al
  • 7.
    sistema que necesariamentese tuvieran que ejecutar en modo privilegiado (modo kernel). El resto de las llamadas se expulsarían del núcleo hacia otras entidades que se ejecutarían en modo no privilegiado (modo usuario), y de esta manera el núcleo resultaría una base compacta, robusta y estable. El Modo Usuario es un modo menos privilegiado de funcionamiento, sin el acceso directo al hardware. El código que corre en este modo sólo actúa en su propio espacio de dirección. Este usa las APIs (System Application Program Interfaces) para pedir los servicios del sistema. El Modo Kernel es un modo muy privilegiado de funcionamiento, donde el código tiene el acceso directo a todo el hardware y toda la memoria, incluso a los espacios de dirección de todos los procesos del modo usuario. La parte de WINDOWS que corre en el modo Kernel se llama Ejecutor de Windows, que no es más que un conjunto de servicios disponibles a todos los componentes del Sistema Operativo, donde cada grupo de servicios es manipulado por componentes que son totalmente independientes (entre ellos el Núcleo) entre sí y se comunican a través de interfaces bien definidas. Todos los programas que no corren en Modo Kernel corren en Modo Usuario. La mayoría del código del Sistema Operativo corre en Modo Usuario, así como los subsistemas de ambiente (Win32 y POSIX que serán explicados en capítulos posteriores) y aplicaciones de usuario. Estos programas solamente acceden a su propio espacio de direcciones e interactúan con el resto del sistema a través de mensajes Cliente/Servidor.