Documentos de Académico
Documentos de Profesional
Documentos de Cultura
o Un computador est consituido por varios recursos (HW) compartidos. o Las aplicaciones de computador son desarrollados para ejecutar una tarea en particular. o Resultara poco (nada) prctico crear aplicaciones para una plataforma de hardware en particular.
El S.O. fue desarrollado para proveer interfaces a travs de abstracciones simples y uniformes del HW y que sern usadas por las aplicaciones.
Elementos de un proceso
Cuando el procesador comienza a ejecutar el cdigo mquina de un programa , nosotros referiremos a esta entidad en ejecucin como PROCESO
Puede ser compartido con otros procesos que estn ejecutndose en el mismo programa.
Cuando un programa est en ejecucin, este proceso puede ser caracterizado de forma nica por algunos elementos , que inlcuyen:
Identificador (PID)
contador de programa Informacin de contabilidad (CPU usado)
prioridad
(Registros)
Ejecucin de procesos
Rastreo
El comportamiento de un proceso puede ser rastreado por las instrucciones que son ejecutadas por ste.
Planificador Dispatcher
El comportamiento del procesador puede ser caracterizado mostrando el rastreo de varios procesos intercalados.
Ejecucin de procesos
Address
0 100
Program Counter
8000
5000
Process A
8000
Process B
12000
Process C
de cada proceso)
5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011
(a) Trace of Process A
12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011
5000 = Starting address of program of Process A 8000 = Starting address of program of Process B 12000 = Starting address of program of Process C
del procesador)
1 5000 2 5001 3 5002 4 5003 5 5004 6 5005 -------------------- Timeout 7 100 8 101 9 102 10 103 11 104 12 105 13 8000 14 8001 15 8002 16 8003 ----------------I/O Request 17 100 18 101 19 102 20 103 21 104 22 105 23 12000 24 12001 25 12002 26 12003 27 12004 28 12005 -------------------- Timeout 29 100 30 101 31 102 32 103 33 104 34 105 35 5006 36 5007 37 5008 38 5009 39 5010 40 5011 -------------------- Timeout 41 100 42 101 43 102 44 103 45 104 46 105 47 12006 48 12007 49 12008 50 12009 51 12010 52 12011 -------------------- Timeout
100 = Starting address of dispatcher program Shaded areas indicate execution of dispatcher process; first and third columns count instruction cycles; second and fourth columns show address of instruction being executed
Enter
Not Running
Running
Exit
Pause
Exit
Hay una sola cola, en donde cada entrada es un puntero al bloque deTwo-State controlProcess de un M proceso en Figure 3.5 odel particular.
de explotar el paralelismo.
Cuando requieras ejecutar varias tareas de forma concurrente.
Ejm?
Creacin de procesos
Engendrado de un proceso Process spawning Cuando el S.O, crea un proceso ante la solicitud explcita de otro proceso.
Cooperacin
Finalizacin de procesos
El S,O. debe proveer un mecanismo para indicar que un proceso a terminado.
o Se incluye una instruccin HALT, que genera una interrupcin para alertar al S.O. que un proceso se ha completado.
Cundo?
o o o o o o o o o o o Proceso completado. Lmite de tiempo excedido. Memoria no disponible. Violacin de acceso a memoria. Error de proteccin. Error aritmtico. Falla de E/S. Intento de ejecucin de instruccin privilegiada. Mal uso de datos. Intervencin del S.O. Ejm: deadlock. Finalizacin del proceso padre.
Event Occurs
Event Wait
Blocked
Process B
Process C
Dispatcher
10
15
20
25
30
35
40
45
50
= Running
= Ready
= Blocked
Release
Timeout Blocked Queue Event Occurs Event Wait (a) Single blocked queue
Release
Event 1 Wait
Event 2 Wait
Procesos suspendidos
o Las tareas de E/S son mucho ms lentas que las tareas que ejecuta el procesador.
El procesador en un sistema monotarea pasara la mayor parte del tiempo en reposo. En un sistema multitarea, el modelo presentado en la diapositiva enterior resuelve el problema parcialmente.
o Tengo muchos procesos y cuando uno se bloquea conmuto a otro proceso Sin embargo, an el procesador podra pasar mucho tiempo en reposo.
Solucin: Acomodar ms procesos en memoria principal. Aparece otro problema. Sabemos que la memoria principal es un recurso limitado. Qu ocurre con los procesos bloqueados por un perodo de tiempo considerable? ocupan memoria?. Solucin: Swapping
Procesos suspendidos
o Swapping.
Mover los procesos bloqueados, que se hallan en memoria principal, hacia el disco duro. El S.O. mueve los procesos que no estn en estado READY hacia una cola de procesos suspendidos. Ahora, el S.O. puede traer otros procesos suspendidos o nuevos procesos creados (NEW).
Procesos suspendidos
New Admit Dispatch Ready Timeout Running Release Exit
Event Occurs
ct iv at e
Suspend
Suspend
New
Ev en t
ai t
DESCRIPCION DE PROCESOS
Procesos y Recursos
El S.O. es una entidad que gestiona el uso de recursos del sistema mediante procesos.
P1
P2
Pn
Virtual M emory Computer Resources
Processor
I /O
I /O
I /O
M ain M emory
Process n
Deben ser administradas por el S.O. Todos los procesos deben estar referenciados a memoria, E/S y archivos directa o indirectamente. Cmo el S.O. crea las tablas la primera vez?
o Se requiere de una configuracin inicial bsica del entorno (cunta memoria existe, que dispositivos de E/S existen y cuales son sus identificadores)
Qu El lugar donde est el proceso. necesita el S.O. para Los atributos del proceso que gestionar y son necesarios controlar para su gestin. un proceso?
User Stack
User Stack
User Stack
Process 1
Process 2
Process n
Process I dentification I dentifiers Numeric identifiers that may be stored with the process control block include Identifier of this process Identifier of the process that created this process (parent process) User identifier Processor State I nformation User-Visible Registers A user-visible register is one that may be referenced by means of the machine language that the processor executes while in user mode. Typically, there are from 8 to 32 of these registers, although some RISC implementations have over 100. Control and Status Registers These are a variety of processor registers that are employed to control the operation of the processor. These include Program counter: Contains the address of the next instruction to be fetched Condition codes: Result of the most recent arithmetic or logical operation (e.g., sign, zero, carry, equal, overflow) Status information: Includes interrupt enabled/disabled flags, execution mode Stack Pointers Each process has one or more last-in-first-out (LIFO) system stacks associated with it. A stack is used to store parameters and calling addresses for procedure and system calls. The stack pointer points to the top of the stack.
Process Control I nformation Scheduling and State I nformation This is information that is needed by the operating system to perform its scheduling function. Typical items of information: Process state: Defines the readiness of the process to be scheduled for execution (e.g., running, ready, waiting, halted). Priority: One or more fields may be used to describe the scheduling priority of the process. In some systems, several values are required (e.g., default, current, highest-allowable) Scheduling-related information: This will depend on the scheduling algorithm used. Examples are the amount of time that the process has been waiting and the amount of time that the process executed the last time it was running. Event: Identity of event the process is awaiting before it can be resumed. Data Structuring A process may be linked to other process in a queue, ring, or some other structure. For example, all processes in a waiting state for a particular priority level may be linked in a queue. A process may exhibit a parent-child (creator-created) relationship with another process. The process control block may contain pointers to other processes to support these structures. I nterprocess Communication Various flags, signals, and messages may be associated with communication between two independent processes. Some or all of this information may be maintained in the process control block. Process Privileges Processes are granted privileges in terms of the memory that may be accessed and the types of instructions that may be executed. In addition, privileges may apply to the use of system utilities and services. M emory M anagement This section may include pointers to segment and/or page tables that describe the virtual memory assigned to this process. Resource Ownership and Utilization Resources controlled by the process may be indicated, such as opened files. A history of utilization of the processor or other resources may also be included; this information may be needed by the scheduler.
Cada proceso tiene asignado un identificador nico (PID) que sirve como ndice en la tabla de procesos. Muchas de las tablas controladas por el S.O. pueden usar los PID para establecer una referencia crazada con las tablas de procesos.
Las tablas de memoria pueden ser organizadas para proveer un mapa de memoria con una indicacin del proceso al que se le ha asignado cada regin. Cuando un proceso se comunica con otro, el PID informa al S.O. el destino de una comunicacin en particular. La relacin entre procesos padres e hijos es mantenida a travs de los PID.
CONTROL DE PROCESOS
Modo Usuario
Modo Kernel
o Mximos privilegios. o Lo ejecuta el kernel del S.O. Para la gestin de procesos, memoria, E/S, archivos, etc.
Llamada al sistema
Trap
Un error o condicin de excepcin generado dentro del proceso que se ejecuta actualmente. EL S.O. determina si una condicin es fatal. o Finaliza el proceso si es necesario. o Notifica al usuario y continua.
Consideraciones de seguridad
Los privilegios determinan los recursos a los que puede acceder un proceso (regiones de memoria, archivos, instrucciones privilegiadas, etc). Un proceso que se ejecuta en favor de un usuario tiene los privilegios que el S.O. reconoce para el usuario. En un sistema tpico, los ms altos privilegios se conoce como administrador o acceso root.
o Tiene el control completo del sistema, puede agregar o cambiar programas y archivos, monitorear otros procesos, etc.
Una consideracin de diseo clave es prevenir, o al menos detectar el malware que intenta ganar acceso como root.
preempt swap out reschedule process Kernel Running wakeup wakeup Ready to Run I n M emory swap in Ready to Run Swapped
sleep exit
Zombie
Asleep in M emory
swap out
Sleep, Swapped
Kernel stack
User identifiers
Process identifiers
Event descriptor
P_link
Memory status
La creacin de procesos es mediante la llamada al sistema fork(). Al ejecutar fork, lo que sucede es lo siguiente:
1 Asigna un slot en la tabla de procesos, para el nuevo proceso. Asigna un identificador nico al proceso hijo. Hace una copia de la imagen del proceso padre, con excepcin de la memoria compartida. Incremente los contadores para cualquier archivo perteneciente al padre, para reflejar que un proceso adicional es ahora tambin dueo de estos archivos. Setea el estado del proceso hijo a un estado ready
Despus de la creacin del proceso, el kernel puede hacer lo siguiente, como parte de la rutina del planificador: o Mantenerse en el proceso padre. o Transferir el control al proceso hijo. o Transferir el control a otro proceso.
Procesos en LINUX
Listado de procesos
o ps: Lista todos los procesos creados por el terminal actual.
PID: Process Identifier TTY: Terminal Type (Ingrese tty para observar el terminal en el que se encuetra). TIME: Tiempo de CPU usado desde que el proceso inicio. CMD: Comando ejecutado para ejecutar el proceso. o pstree: Lista los procesos en forma de rbol. o top: Muestra un snapshot de los procesos en tiempo real.
Las funciones que contienen la letra v en sus nombres (execv, execvp, execve):
o Aceptan una lista de argumentos en un arreglo de punteros a cadenas de carateres (terminan con un NULL).
Las funciones que contienen la letra l en sus nombres (execl, execlp, execle):
o Aceptan una lista de argumentos usando el mecanismo varargs de C.
Cuando se recibe una seal, el proceso detiene su ejecucin normal. En su lugar, ejecuta una rutina signalhandler.
o Al terminar de ejecutar la rutina de manejo de seal retorna a la ejecucin del programa.
Nombre
SIGHUP SIGILL SIGSEGV
Descripcin
Terminal colgado o proceso muerto. Instruccin ilegal El S.O. informa: Violacin de acceso a memoria El S.O. informa: Excepcin de punto flotante. Un proceso solicita la finalizacin de otro proceso. Un proceso finaliza otro proceso de forma unilateral. Seal definida por el usuario 1 Seal definida por el usuario 2
SIGFPE
15
SIGTERM
SIGKILL
30, 10 y 16 31, 12 y 17
SIGUSR1 SIGUSR2
Para enviar una seal desde un programa en C, hay que utilizar la funcin kill con dos parmetros de entrada:
o kill(pid, seal) o Donde: pid es el identificador del proceso a emitir la seal. seal es el tipo de seal a emitir. o Por ejemplo kill(pid_hijo, SIGKILL), termina el proceso cuyo PID est contenido en pid_hijo. o Se debe usar los archivos de cabecera sys/types.h y signal.h para el uso de la funcin kill.
Procesos en LINUX
Esperando por la finalizacin de un proceso
Qu sucedi con el programa en donde se crea un proceso hijo para imprimir la salida del comando ls -l /?
Procesos en LINUX
Esperando por la finalizacin de un proceso
No olvidemos que los procesos se ejecutan de forma independiente. Podemos predecir cual se ejecutar primero? Qu ocurre en un S.O. multitarea? Se puede lograr que el proceso padre espere a que los procesos hijo terminen su ejecucin usando la familia de llamadas al sistema wait.