Download El sistema operativo y los procesos
Document related concepts
Transcript
Tema 16: El sistema operativo y los procesos 1 M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) • El sistema operativo • Componentes básicos de un sistema operativo • • • • • Núcleo o Kernel Administrador de memoria Sistema de entrada/salida Administrador de archivos Interprete de comandos 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez Contenido • Concepto de Proceso • • • • Planificador de procesos Estados de un proceso Administrador de memoria Memoria de un proceso 2 • Un Sistema operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware de una computadora y los programas usados por el usuario. • Es responsable de gestionar, coordinar las actividades y llevar a cabo el intercambio de los recursos así como actuar como plataforma para que el resto de aplicaciones del usuario se ejecutan en un equipo de cómputo. 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez El sistema operativo 3 • Servir como interfaz entre el equipo físico (hardware) de una computadora y el usuario y resto del software, con el fin de presentar una "cara" más sencilla y amistosa al mismo (fácil interoperabilidad). • Optimar y gestionar los recursos (tanto de software como de hardware) con que cuenta una computadora y hacer utilizable ésta última. 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez Objetivos del Sistema Operativo: Usuarios Software de aplicaciones Software del Sistema Sistema Operativo Hardware 4 • Núcleo o Kernel • Sistema de entrada/salida 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez Componentes básicos de un sistema operativo • Administrador de archivos • Intérprete de comandos 5 • Es el módulo de más bajo nivel de un sistema operativo. Entre las tareas que desempeña se incluyen el manejo de las interrupciones y los procesos "process control", la asignación de trabajo al procesador "scheduler", la asignación de la memoria a los procesos y su gestión "memory management" y el proporcionar una vía de comunicación entre los distintos programas "IPC". 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez Núcleo o Kernel • En general, el núcleo se encarga de controlar el resto de los módulos y sincronizar su ejecución. 6 • Este componente presenta al usuario la E/S de datos como una cuestión independiente del dispositivo; es decir, para los usuarios, todos los dispositivos tienen las mismas características y son tratados de la misma forma, siendo el sistema operativo el encargado de atender las particularidades de cada uno de ellos (como su velocidad de operación). Una técnica muy común, especialmente en salida, es el uso de "spoolers". Los datos de salida se almacenan de forma temporal en una cola situada en un dispositivo de almacenamiento masivo (el spool), hasta que el dispositivo periférico requerido se encuentre libre; de este modo se evita que un programa quede retenido porque el periférico no esté disponible. El sistema operativo dispone de llamadas para añadir y eliminar archivos del spool. 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez Sistema de entrada/salida 7 • Se encarga de mantener la estructura de los datos y los programas del sistema y de los diferentes usuarios (que se mantienen en archivos) y de asegurar el uso eficiente de los medios de almacenamiento masivo. • El administrador de archivos también supervisa la creación, actualización y eliminación de los archivos, manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera con el módulo administrador de memoria durante las transferencias de datos desde y hacia la memoria principal. Si se dispone de un sistema de memoria virtual, existen transferencias entre la memoria principal y los medios de almacenamiento masivo para mantener la estructura de la misma. • Los archivos almacenados en los dispositivos de almacenamiento masivo tienen distintos propósitos. Algunos contienen información que puede ser compartida. Otros son de carácter privado, e incluso secreto. Por tanto, cada archivo está dotado de un conjunto de privilegios de acceso, que indican la extensión con la que se puede compartir la información contenida en el archivo. 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez Administrador de archivos 8 • Muchos comandos son proporcionados por el sistema operativo mediante estatutos de control que tienen las siguientes funciones • • • • • • • Creación de procesos y administración Administración de E/S Administración de almacenamiento secundario Administración de memoria principal Acceso al sistema de archivos Protección Acceso a la red 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez Interprete de comandos 9 • Un proceso es un programa en ejecución, los procesos son gestionados por el sistema operativo y están formados por: • Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez Concepto de Proceso • Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. • Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. • Otra información que permite al sistema operativo su planificación. 10 • En el núcleo o kernel de todo sistema operativo existe un submódulo denominado scheduler (planificador), el cual se encarga de asignar tiempo del procesador a los programas, de acuerdo a una cierta política de planificación que varía de un sistema operativo a otro. Proceso ID=n … Proceso ID=03 Proceso ID=02 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez El planificado de procesos Procesador (CPU) Proceso ID=01 scheduler 11 process control memory management • Una política de planificación muy común en los sistemas de multiprogramación y multiproceso son las técnicas de "time slicing" (fracción de tiempo). Se asigna a cada programa un corto intervalo de tiempo del procesador. Si el programa no ha terminado durante este intervalo de tiempo, vuelve a la cola de programas. 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez • Normalmente se utiliza una jerarquía de prioridades que determinan cómo se asignará el tiempo del CPU a cada programa. 12 • Los procesos son creados y destruidos por el sistema operativo por el modulo "process control" dentro del kernel, de la misma forma el kernel también este se debe hacer cargo de la comunicación entre procesos "IPC (Inter-process Communication)", a petición de otros procesos y de la memoria principal que este puede usar "memory management". scheduler process control Proceso 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez Estados de un proceso memory management 13 en ejecución despachar time-out listo despertar bloqueo 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez • En todo sistema operativo un proceso puede al menos estar en tres estados "en ejecución", "listo" y "bloqueado". bloqueado 14 • Listo: Proceso que está listo para ejecutarse. Simplemente está esperando a que el sistema operativo le asigne un tiempo de CPU. • Bloqueado: Proceso que por algún motivo paso a este estado (Se mando a dormir, se espera alguna respuesta de e/s, se detecto un error en su ejecución, se espera acceder a un recurso.) 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez • En ejecución: Sólo uno de los procesos preparados se está ejecutando en cada momento (monoprocesador). Si se tienen más recursos de procesamiento (multiprocesador) la cantidad de procesos posibles de ejecutarse simultáneamente se encuentran en ejecución. 15 16 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez • Este módulo dentro del kernel (memory management) se encarga de asignar ciertas porciones de la memoria principal (RAM) a los diferentes programas o partes de los programas que la necesiten, mientras el resto de los datos y los programas se mantienen en los dispositivos de almacenamiento secundario. Cuando se asigna una parte de la memoria principal se hace de una forma estructurada, siguiendo un determinado orden. La forma más común de administración de la memoria supone crear una memoria virtual; con este sistema, la memoria de la computadora aparece, para cualquier usuario del sistema, mucho mayor de lo que en realidad es. 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez Administrador de memoria 17 18 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez • Durante la ejecución del proceso, todos los datos manipulados (incluido el propio código del programa compilado) se alojan en la memoria principal, ya que esta ofrece menor latencia (menor tiempo de comunicación con el CPU) respecto de los medios secundarios. Sistema Operativo CPU 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez Memoria de un proceso Proceso n Memoria 19 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez • Al ejecutar un nuevo programa el administrador de memoria del sistema operativo, asigna un bloque contiguo de memoria al proceso que se inicia (el tamaño es variable). 20 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez • Durante la ejecución del proceso, todos los datos manipulados (incluido el propio código del programa compilado) se alojan en la memoria principal, ya que esta ofrece menor latencia (menor tiempo de comunicación con el CPU) respecto de los medios secundarios. 21 • El segmento de datos alberga las declaraciones globales (e.g. variables del programa principal y constantes globales). 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez • Empezando por la direcciones más bajas, el segmento de código es la porción de la memoria donde se carga el programa que se ejecuta. • El montículo es la región de memoria que se toma y se libera de manera dinámica durante la ejecución del programa. • La pila es donde se "apilan" porciones de memoria pertenecientes a funciones y/o procedimientos cuando se les llama. 22 Memoria de proceso activo Datos Pila (Stack) 16 El sistema operativo y los procesos Algoritmia y programación estructurada Prof. Edgardo Adrián Franco Martínez Código Montículo (Heap) Pila 23