Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas Operativos
El Sistema Operativo 1
Programas de usuario
Sistema Operativo
Hardware
El Sistema Operativo 2
1951 : UNIVAC
• Creado para la oficina del censo.
• Procesamiento de datos.
• 1953 Edvac, IBM 701
Generación 2 (1954-1963):
Transistor y procesamiento por lotes.
Computación paralela.
Generalización de Internet.
Sistemas de red. Sistemas
distribuidos.
Generaciones/revoluciones en Computación
Funciones.
Tratamiento de interrupciones: (oculta a las capas superiores).
Conmutación de procesos en la CPU: Rutinas para la gestión de los procesos.
Comunicación entre procesos.
Carga inicial y activación de la configuración del sistema.
Protección: Protección de I/O, protección de memoria, protección de la CPU.
Conceptos básicos.
1.2 El núcleo: Protección.
1. Protección de I/O:
Códigos de control en la entrada ==> el sistema retoma el control de la máquina.
El usuario no ha de gestionar I/O.
Las instrucciones de I/O se realizan mediante llamadas al sistema que se ejecutan en
modo supervisor (Modo Dual de Ejecución).
2. Protección de memoria.
Ningún programa de usuario puede hacerse con el control del sistema. El sistema
operativo SI tiene un acceso total a la memoria de la máquina.
Toda interrupción o llamada al sistema ha de ser ejecutada en modo supervisor
(Modo Dual de Ejecución). Esto reclama protección en el vector de interrupciones y
sus rutinas (zonas de MEM bajas).
Control en registros base, límite, tablas de página, etc.
3. Protección de la CPU.
Temporizador: Impide que cualquier programa monopolice el uso de la CPU. Cada
cierto intervalo de tiempo (1/60 s) el control es transferido al monitor del sistema.
Conceptos básicos.
1.2 El núcleo: Modos de ejecución.
• Existe instrucciones restringidas asociadas a la lectura o modificación
de registros de control (modo privilegiado o supervisor o modo núcleo,
o modo sistema o modo de control).
Gestión de procesos. Creación y terminación de procesos.
Gestión de la memoria Planificación.
Sincronización y comunicación de
Gestión de la I/O
procesos.
Gestión de las IRQ. Gestión de bloques de control de
Contabilidad. proceso.
Nota: En muchos casos procesar una IRQ no implica el cambio de contexto del proceso.
Conceptos básicos.
1.4 Llamadas al sistema.
Def.: Interface normalizada entre el sistema operativo y proceso.
• Acceso controlado a los servicios de nivel bajo.
• Después de recibir la llamada el SO recupera el control.
• Tipos:
Control de procesos y trabajos: Ordenes para la creación, destrucción, ejecución, etc.
de procesos.
Manipulación de ficheros: Ordenes dedicadas a borrar, leer, escribir,, abrir, cerrar, etc.
, ficheros.
Manipulación de dispositivos: Peticiones de atributos, estado (ocupado/libre), lectura,
escritura, etc. de dispositivos.
Mantenimiento de información: Fecha, hora, datos y variables del sistema, atributos
de dispositivo y de ficheros, etc.
Las llamadas al sistema más comunes (sólo en UNIX) realizadas mediante C son:
Abrir: int open (char *fichero, int modo);
Cerrar: int close (descriptor);
Crear: int creat (char *fichero, int modo);
Borrar: int unlink (char *fichero)
Leer y escribir: int read (int descriptor, char *buff, ,int nbytes);
int write (int descriptor, char *buff, ,int nbytes);
Conceptos básicos.
1.4 Llamadas al sistema.
• Programas para la resolución de problemas corrientes. Entorno más adecuado
para la ejecución de los programas.
• Manipulación de ficheros: Crear, copiar, destruir, listar ficheros y directorios.
• Información de estado: Fecha, hora, cantidad de memoria disponible, espacio
en disco, número de usuarios, etc. La información se formatea y se visualiza.
• Modificación de ficheros: Editores de textos.
• Soporte a lenguajes de programación: Compiladores, ensambladores,
linkadores.
• Carga y ejecución de programas: Depuradores y cargadores en memoria.
• Aplicaciones: Sistemas de bases de datos, sistemas de gráficos, procesadores
de texto, sistemas de análisis estadístico, etc.
• Interprete de comandos es el programa más útil de los que acompañan al
sistema operativo. Su función es la de captar el siguiente comando en la línea
de ordenes y realizar su ejecución.
Conceptos básicos.
1.4 Llamadas al sistema:
Ej.: Programa de lectura de datos de un fichero y escritura en otro.
. Se arranca el programa (llamada al sistema): necesita los nombre de archivos de
entrada y salida. Si el programa pregunta por los nombre, escribe la petición en
pantalla (llamada al sistema) y leerla del teclado, o leerla del dispositivo de entrada
(llamada al sistema).
Apertura del fichero de entrada y creación del de salida (llamadas al sistema)
Si se generan errores (archivo1 no existe o disco lleno) (llamada al sistema).
Si el fichero de salida existe se puede borrar (llamada al sistema) y se crea uno
nuevo (llamada al sistema), o bien se pide otro nombre al usuario (llamadas al
sistema para salidas por monitor y recogida de información).
El copiado de los ficheros se hace mediante llamadas al sistema para la lectura y otras
para la escritura.
El proceso se finaliza (llamada al sistema) con las ordenes de cerrar archivos y
terminación del proceso (llamadas al sistema).
Conceptos básicos.
1.5 Programas de sistema.
Programas para la resolución de problemas corrientes. Entorno más adecuado
para la ejecución de los programas.
Manipulación de ficheros: Crear, copiar, destruir, listar ficheros y directorios.
Información de estado: Fecha, hora, cantidad de memoria disponible, espacio en
disco, número de usuarios, etc. La información se formatea y se visualiza.
Modificación de ficheros: Editores de textos.
Soporte a lenguajes de programación: Compiladores, ensambladores, linkadores.
Carga y ejecución de programas: Depuradores y cargadores en memoria.
Aplicaciones: Sistemas de bases de datos, sistemas de gráficos, procesadores de texto,
sistemas de análisis estadístico, etc.
Interprete de comandos es el programa más útil de los que acompañan al sistema
operativo. Su función es la de captar el siguiente comando en la línea de ordenes y
realizar su ejecución.
Conceptos básicos.
1.5 Programas de sistema.
Comandos
Pueden estar implementados en el código del interprete (él hace la llamada
al sistema).
Pueden estar implementados en archivos especiales.
En este último caso ha de existir un mecanismo para que el interprete de
comandos le pueda pasar argumentos al programa comando.
Shell
Las SHELLs no pertenecen al SO. Están al nivel de los compiladores,
linkadores, ensambladores, etc.
El nombre SHELL es el nombre del interprete de comandos del UNÍS. En
DOS recibe el nombre de COMMAND.COM.
La salida y entrada standard es la terminal.
Los comandos son ejecutados como procesos hijos.
2. Procesos .
• Proceso Suspendido:
No estará disponible de inmediato para su ejecución.
Proceso situado en Suspendido por el SO o por él mismo para evitar su ejecución.
Un proceso que no puede liberarse del estado hasta que se le ordene.
Para un proceso Suspendido el cambio de bloqueado a listo no implica que deje de
estar Suspendido.
Actuaciones del Sistema sobre los procesos
• Suspensión.
Equilibrar la carga del sistema (ante sobrecargas)
En lugar de abortar un proceso que puede estar funcionando mal.
del sistema)
proceso suspendido no puede proseguir hasta que otro lo reanude.
2. Procesos.
2.5 Estados de un proceso (3).
Cambio de proceso.
• Interrupción.
Interrupción de reloj: Finalización del tiempo concedido por el sistema.
Interrupcuón de I/O: Modificación del estado de procesos en ejecución a bloqueado o
liberación de los procesos en espera.
Fallo de memoria.
• Traps.
Error o condición excepcional.
Provocadas por el proceso en curso.
Fatal terminación de proceso.
• Llamada del supervisor / llamada al sistema.
Pasos en un cambio de proceso:
1. Salvar el contexto del procesador (contador y registros).
2. Actualizar el Bloque de C. del proceso en ejecución (estado de ejecución a listo o
bloqueado, etc.) junto con info. de la razón del cambio.
3. Mover el BCP a la cola apropiada a su estado.
4. Seleccionar otro proceso para ejecución.
5. Actualizar el BCP del proceso seleccionado (modo ejecución).
6. Actualizar la información de la gestión de la memoria.
7. Restaurar el estado del procesador para el nuevo proceso.
2. Procesos.
2.6 Hilos o threads (1).
Los procesos comunes son independientes, con espacios de memoria separados. En determinadas ocasiones
se necesita que los procesos colaboren.
Def. Entidad básica de ejecución que únicamente posee como propio el contador de programa, los registros
del procesador y la pila.
Los hilos pertenecen a una unidad de mayor nivel, la tarea.
La tarea carece de capacidad de ejecución, pero dispone de recursos. La tarea en ejecución ha de poseer al
menos un hilo.
Ventajas:
Menor coste de creación: Menores estructuras de información. Recursos de la tarea.
Cambio de contexto dentro de la tarea es poco costoso.
Comunicación ágil (MEM). No interviene el núcleo.
Estructura.
Área de programa (RO) de instrucciones.
Área de datos o variables (RW).
Heap para asignación dinámica de MEM. Compartida.
Pila para cada hilo
Proceso Hilo
2. Procesos.
2.4 Hilos o threads (2).
Los hilos. • Elementos por hilo
• Estado de ejecución. Contador de programa
• Contexto del procesador. Pila
• Pila de ejecución. Conjunto de registros
• Variables locales. Hilos hijos
• Acceso a MEM y variables del proceso. Estado
• Elementos por proceso
Espacio de direcciones
Variables globales
Archivos abiertos
Procesos hijos
Cronómetros
Señales
Semáforos
Información contable