Manipulación de procesos

Documentos relacionados
Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.

Introducción a los Sistemas Operativos

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Threads, SMP y Microkernels. Proceso

Herramientas Informáticas I Software: Sistemas Operativos

Concurrencia y paralelismo

No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones aceptadas:

Capítulo 3: Procesos. n Concepto de Proceso. n Despacho (calendarización) de Procesos. n Operaciones en Procesos. n Procesos en cooperación

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

06. GESTIÓN DE PROCESOS Y RECURSOS

6. Planificación. Los procesos tienden a tener ráfagas de ejecución (CPU-burst) y ráfagas de espera de operaciones de E/S (I/O burst).

Actividades de Teoría de Sistemas Operativos Sistemas informáticos multiusuario y en red

Sistemas Operativos. Daniel Rúa Madrid

Servicios del Sistema Operativo (SO)

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Qué es un programa informático?

3. Sistemas operativos

3. Sistemas operativos

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

FUNDAMENTOS DE LOS SISTEMAS OPERATIVOS

Sistemas Operativos. Clase 2: Administración de procesos.

Funcionamiento de la computadora

BUAP FACULTAD DE CIENCIAS DE LA COMPUTACIÓN SISTEMAS OPERATIVOS 2 PRACTICA 2 JAIME MORALES FLORES

Microsoft Word. Microsoft Word 2013 SALOMÓN CCANCE. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

MANUAL PARA EL CARGUE DE REPORTES POR FTP

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

CICLOS DEL PROCESADOR

Diagrama temporal de un programa simple. Multi-Programación con dos programas

Estructura del Computador

ING. JONATHAN QUIROGA TINOCO. Desarrollado por Ing. Jonathan Quiroga T.

Memoria. Organización de memorias estáticas.

Funciones básicas del depurador

Comprensión de los sistemas de. control. Ing. Jorge Sofrony. Inicio. Obje%vos del Programa. Misión y Visión del programa

Fundamentos de Ordenadores. Depurar programas usando Nemiver

SISTEMAS OPERATIVOS Arquitectura de computadores

Introducción a los Sistemas Operativos

Fundamentos de Sistemas Operativos

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Tema 6 Organización y gestión de la memoria

Microprocesadores. Procesadores IA-32 e Intel R 64 Tareas. Alejandro Furfaro

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento

Sistemas Operativos. Introducción. Tema 6

Administración de Memoria.

Introducción a la arquitectura de computadores

Tema 14: Sistemas Secuenciales

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Tema 6. Administración de memoria

Unidad I: Organización del Computador. Ing. Marglorie Colina

EJEMPLO DE MANIPULACIÓN DE TAREAS

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

El modelo de Procesos

Módulo 2: Cómo funcionan las computadoras

Unidad 5: Vincular libros de Excel

Definición de Sistema Operativo

Planificador de Linux (Scheduler)

CONCEPTOS BÁSICOS COMPUTADORA

Ejecuta el modo XP sin virtualización de hardware

Tema 3. Aplicaciones de Tipo Consola

DIAGRAMA A BLOQUES DE UNA COMPUTADORA

Copias de seguridad y recuperación Guía del usuario

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?

MANEJO DEL AREA DE SWAP

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

FACULTAD DE INGENIERÍA

Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos

Informática Electrónica Manejadores de Dispositivos (Device Drivers)

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

Seleccione en el escritorio el programa Sucosoft S40 y darle doble click.

Ejercicios del tema 4. El procesador

Procesos e Hilos en C

Diagrama a bloques de una computadora

EL ENTORNO DEL EDITOR

Computadora y Sistema Operativo

1. Manual de Usuario. 1.1 Ingreso al Software. 1.2 Ventana principal del Spark

ENIAC, Primer computador electrónico y su panel de conexiones

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

SUBSISTEMA DE ENTRADA-SALIDA. Arquitectura de Computadores I 4º tema

(1) Unidad 1. Sistemas Digitales Basados en Microprocesador SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

Sistemas Operativos. Curso 2016 Procesos

Introducción a Windows 98

Introducción a la programación

CONFIGURACION DE UN SISTEMA DUPLEX. Nota de aplicación. Controles S.A Tel Av. Rivera 3314 Fax

CAPITULO ALGORITMOS Y PROGRAMAS CONTENIDO

Gestión de procesos DEFINICIONES DE PROCESOS

Conceptos básicos y manual de procedimientos para Windows e Internet

PROCEDIMIENTOS DEL NOC RESPALDO Y RECUPERACION DE DATOS

Gestión de Entrada-salida

Transcripción:

Manipulación de procesos Las primeras computadoras solo podían manipular un programa a la vez. El programa tenía control absoluto sobre todo el sistema. Con el desarrollo vertiginoso del hardware ese panorama ha cambiado radicalmente y hoy en día es posible cargar varios programas en memoria para que se ejecuten concurrentemente. La situación anterior ha obligado a establecer un control más estricto sobre los recursos ya que, al ser estos finitos y tener que compartirlos, surgen diferentes conflictos que puede entorpecer la idea de realizar más tareas en el mismo tiempo físico. Concepto de proceso. Un proceso es un programa en ejecución, resulta de suma importancia comprender este concepto en toda la magnitud de la palabra y nunca debe confundirse con el concepto de programa ya que mientras el primero es un ente activo que posee recursos y tiene vida (realiza determinada actividad) el segundo es un ente pasivo que no hace absolutamente nada. Obsérvese que puede parecer una sutileza pero un programa no deja de serlo por el hecho de estar escrito en un papel, una pizarra o estar contenido dentro de un archivo que reside en cualquier medio de almacenamiento, en este último caso existe la posibilidad de que el sistema operativo lo cargue en la memoria (le asigna una parte de la memoria como recurso) y le pase el control de la cpu (le asigna el procesador, por un tiempo, como otro recurso) para que comience su ejecución y por tanto cobre vida y se transforme de programa (ente pasivo) a proceso (ente activo). Quizás, en múltiples ocasiones, ustedes han apretado la combinación de teclas ctrl-alt-del cuando han estado usando algún SO de la Microsoft y habrán observado que, a pesar de no haber ordenado la ejecución de programa alguno, hay muchos procesos que se están ejecutando, ellos son parte de los procesos que inicia el SO. También se habrán percatado que pueden realizar varias tareas a la vez, por ejemplo: editar un texto, imprimir y navegar por Internet, todo eso aún cuando la máquina que están usando tiene un solo procesador. 1

El Process Control Block (PCB) El PCB es la estructura de datos que controla el estado del proceso y sus recursos, la figura 1 proporciona una idea esquematizada de la misma. La información en el PCB puede variar de un sistema operativo a otro pero, en términos generales, deben estar presentes estos campos. El Estado, describe la actividad actual del proceso. La Identificación es, usualmente, un número que identifica unívocamente al proceso dentro del sistema y se conoce, muchas veces, como PID (process identification). El Contador de programa contiene la dirección de la próxima instrucción a ejecutar, obsérvese que ese valor se refiere a un registro del procesador (registro EIP en el procesador Intel). El campo Registros se ha representado con más espacio debido a que se desea dar la idea de que en él están contenidos todos los demás registros del procesador (para ese proceso). Los Límites de memoria indican la parte de memoria que tiene reservado el proceso y dependerá del esquema de asignación de memoria que use el SO (puede ver el mapa de administración de la memoria). El campo Archivos abiertos puede ser un puntero a una tabla que contiene la lista de archivos abiertos por el proceso, en dicha tabla se controlan cosas tales como el lugar desde o hacia donde se leerá o escribirá la próxima información. Un proceso necesita más que el código para poder ejecutarse ya que también necesita tener un control sobre sus recursos, tales como: su espacio de direcciones de memoria, la pila y los valores de los registros del procesador, entre otros, ese control se lleva a cabo por los diferentes módulos del SO los cuales basan su trabajo en la información contenida en el PCB. 2

Estado Identificación Contador de programa Registros Límites de la memoria Archivos abiertos Figura 1. PCB típico. Ciclos de vida y estados de un proceso En un sistema multiprogramado, se puede afirmar que cada proceso tiene su CPU virtual en el sentido que siempre tiene una copia de ella. Esa copia se guarda en el Bloque de Control de Proceso (PCB). La idea básica para detener procesos e intercambiar las tareas de forma que teniendo una sola CPU parezca que se ejecutan varias tareas a la vez, se basa en los dos aspectos siguientes. Cada vez que un proceso sea detenido, por cualquier cosa (se le termino el ciclo de cpu, hizo una petición de E/S, etc.), se tomarán los valores de la CPU para guardarlos en su PCB (la CPU virtual de ese proceso). Cada vez que un proceso vaya a entrar en estado de ejecución, se toman los valores de su PCB (su CPU virtual) y se carga la CPU real con ellos, con lo cual esta última queda tal y como estaba cuando el proceso que se va ejecutar fue interrumpido en el pasado o sea: o el valor adecuado del registro contador de programa, para saber cuál es la próxima instrucción a ejecutar, o los valores de los registros asociados a la las direcciones de memoria del proceso, para saber en qué parte de la memoria están sus instrucciones, 3

o Los valores de los registros asociados a las tablas de archivos abiertos para poder continuar leyendo o escribiendo desde o hacia ellos, etc. Podemos asociar la idea de lo que hace el SO a lo que hacemos cuando estamos leyendo un libro y algo o alguien nos interrumpe: en ese caso ponemos un marcador que nos permite volver a abrir el libro en la misma página donde estábamos cuando fuimos interrumpido. Claro que lo que ocurre en el SO es mas complejo, en ese caso nuestro marcador guarda el contador de programa (para saber por donde estaba la ejecución) pero tiene que guardar muchas cosas mas como vimos anteriormente. Observe la figura 2. Ciclos CPU y de E/S El éxito de la planificación de la CPU depende de observar que la vida de los procesos transcurre en dos ciclos: ciclos de CPU y ciclo de E/S. La ejecución de un proceso comienza en un ciclo de CPU, al cual le sigue un ciclo de E/S, de nuevo un ciclo de CPU y después otro de E/S y así sucesivamente hasta terminar (algo aburrida la vida del proceso pero es así). En el peor de los casos solo existe el ciclo de CPU inicial pero es muy difícil que un proceso no efectúe ninguna E/S. A través de los años y gracias a diferentes investigaciones en el campo de los SO, la duración de estos ciclos se ha medido y se ha observado que, en general, existe una gran cantidad de pequeños ciclos de CPU y una pequeña cantidad de grandes ciclos de E/S. En un sistema multiprogramado no se puede programar haciendo suposiciones acerca de la velocidad de ejecución, ya que no todos los procesos ejecutan sus cálculos a igual velocidad e incluso, en el caso que se ejecuten varias veces, cada vez no tienen que comportarse igual. 4

Ejecución Proceso P 0 Sistema operativo Interrupción o llamada al sistema Proceso P 1 Salvar estado en PCB 0 Inactivo Inactivo Recarga estado desde el PCB 1 Interrupción o llamada al sistema Ejecución Salvar estado en PCB 1 Recarga estado desde el PCB 0 Inactivo Ejecución Figura 2. Cambio de CPU entre procesos La vida de un proceso pasa por diferentes estados (figura 3) que describen, de cierta forma, la actividad que están realizando en cada instante de tiempo. En general esos estados pueden ser los siguientes (pueden variar de un SO a otro): 5

Nuevo Admitido Interrumpido Terminado salida Listo Corriendo Evento de E/S terminado Planificador/Despachador Esperando Espera por evento de E/S Figura 3. Transición de estados de un proceso Nuevo (NEW). Ocurre cuando se crea el proceso, es el momento en que sucede la transición de programa a proceso y por eso se crea el PCB y se le asignan algunos recursos elementales, memoria por ejemplo. Listo (READY). Describe a un proceso que está esperando por la CPU. Se llega a este estado de dos varias formas: a. un proceso (nuevo) es admitido en el sistema y por tanto comienza a competir por la CPU, b. un proceso termina un evento externo a la CPU (una entrada salida por ejemplo) y necesita volver a ejecutar, c. un proceso que está usando la CPU es desalojado porque se le terminó el tiempo que le habían dado pero en realidad no había terminado. Corriendo (RUNNING). Un proceso que tiene la CPU asignada. Bloqueado (BLOCKED) o en espera (WAITING). En espera de algún evento externo. Terminado (TERMINATED) cuando el proceso termina completamente su trabajo. 6

Planificación de procesos El objetivo de la multiprogramación es tener varios procesos ejecutando a la vez con el propósito de maximizar el uso de la CPU, por otra parte el objetivo de los sistemas de tiempo compartido (time sharing) es intercambiar la CPU entre distintos procesos tan frecuentemente que los usuarios perciban la idea de que todos los procesos están ejecutándose a la vez. La parte del sistema operativo que se encarga de escoger el proceso que le toca usar la CPU se denomina planificador y el SO cuenta con varios de ellos (vea el nodo correspondiente). 7