Subido por 07andreyudodov

Tema 4: Funciones de los Sistemas Operativos (Resumen)

Anuncio
Tema 4: Funciones de los Sistemas
Operativos
1. Estructura del Sistema Operativo
Un sistema operativo (SO) es un conjunto de programas que gestiona los recursos
del hardware y ofrece servicios a las aplicaciones del usuario. Se divide en dos
partes:
1. Kernel: Es el núcleo del SO que se encarga de la gestión del hardware de la
máquina y ofrece servicios a las aplicaciones que funcionan sobre él. El
kernel es la estructura más interna del SO y se encarga de la relación con el
hardware, permitiendo su control por parte de las aplicaciones que
funcionan sobre el SO. Las funciones del kernel incluyen la gestión de
procesos, gestión de memoria, gestión de archivos y gestión de entrada y
salida.
2. Escritorio: Sobre el núcleo funcionan una serie de aplicaciones básicas en
todos los SO, que funcionan como aplicaciones de usuario (explorador de
archivos, navegador de Internet, etc.). Estas aplicaciones se conocen en
Linux como “Entorno de escritorio”, y varían de unas distribuciones a otras.
2. Gestión de Procesos
Un proceso es un elemento en ejecución que gestiona la CPU en memoria,
generado cuando un conjunto de archivos de un programa se ejecuta. Cada proceso
pertenece a un solo programa. Los procesos pueden iniciarse al arrancar el sistema
operativo, por petición de un usuario, o cuando un proceso hace una llamada al
sistema para crear un nuevo proceso. Un proceso puede terminar cuando completa
su tarea, sufre un error, por petición de un usuario, o cuando un proceso hace una
llamada al sistema para terminar otro proceso.
La información de cada proceso se almacena en un Bloque de Control de
Procesos (PCB), que incluye el identificador del proceso (PID), estado, prioridad,
tiempo usado de CPU, tiempo en espera y tiempo restante de CPU. Los PCBs de
los procesos en ejecución se guardan en la tabla de procesos, donde el kernel
controla el estado de cada uno.
La multiprogramación es la capacidad de un sistema para ejecutar varios
procesos o programas. Existen dos tipos: programación paralela o concurrente, y
programación en tiempo compartido. La CPU hace pasar a los procesos por tres
posibles estados: preparado, en ejecución o bloqueado.
Estados de los procesos:
1.
2.
3.
4.
5.
6.
Proceso creado: Nuevo  Listo.
Asignando CPU: Listo  Ejecutando.
Interrumpido (acaba tiempo): Ejecutando  Listo.
Solicitud de E/S: Ejecutando  Bloqueado.
E/S resuelta: Bloqueado  Listo.
Salida: Ejecutando  Finalizado.
Los hilos son miniprocesos concurrentes generados por acciones independientes
que pueden avanzar por separado. Cada hilo es manejado por una CPU (core o
núcleo del microprocesador). Si un hilo se bloquea, los demás pueden continuar.
En un sistema multitarea, donde muchos procesos compiten por utilizar el
procesador, el SO (kernel) se encarga de planificar la ejecución eligiendo cual se
debe ejecutar en cada momento. Existen varios algoritmos de planificación que se
usan en la planificación de procesos, como FCFS (First Come First Served), SJF
(Shortest Job First), SRTF (Shortest Remaining Time First), Round-Robin y por
prioridades.
Los procesos pueden estar en primer o segundo plano. Los procesos en primer
plano interactúan con los usuarios y siempre están asociados a un usuario. Los
procesos en segundo plano, conocidos como servicios del sistema o demonios, no
suelen interactuar con el usuario y son creados por el SO o por aplicaciones
lanzadas por usuarios. Varios servicios suelen asociarse a un único PID.
3. Gestión de Memoria
La gestión de memoria en multitarea es una función del sistema operativo (SO)
que asigna espacios de direcciones a los nuevos procesos y libera direcciones de
los que han terminado.
La memoria virtual es un mecanismo que permite ejecutar más procesos de los
que caben en memoria, utilizando la memoria secundaria (disco duro) como
ampliación de memoria. Para lograr esto, la memoria utilizada por el programa se
divide en segmentos y los segmentos en páginas (un proceso conocido como
segmentación y paginación). Los segmentos son de tamaño variable y pueden
contener varias páginas, mientras que las páginas son de tamaño fijo (4 KB).
Cuando un proceso necesita una posición de memoria que no está en la memoria
física, se produce un fallo de página. Este se resuelve intercambiando la página
menos utilizada de la memoria física por la que se necesita, que se encuentra en la
memoria secundaria. Este proceso se conoce como swapping o intercambio.
En Linux, el área de intercambio se conoce como área de intercambio de memoria
o Swap, y se ubica en una partición independiente del disco duro, cuyo tamaño
suele ser el doble de la memoria RAM del equipo. En Windows, el área de
intercambio se ubica en un único archivo oculto de sistema llamado pagefile.sys,
ubicado en la partición raíz de la instalación (C:/).
4. Gestión de Archivos
El sistema de archivos es una estructura que sostiene la información en los
dispositivos de almacenamiento, solucionando las limitaciones de la memoria que
maneja el sistema operativo (SO), como su tamaño y la volatilidad de los datos. En
un volumen o unidad formateada con un determinado sistema de archivos, la
información se almacena mediante archivos o ficheros.
Un archivo se define como un conjunto de datos almacenados en un soporte
secundario, asociados a un nombre y a una serie de características ajenas al
usuario. Estas características pueden ser generales para todos los archivos (como
permisos y atributos) o dependientes del tipo de archivo (como datos de la imagen
o del documento).
Cada SO usa su propio sistema de archivos, que puede ser exclusivo del SO si su
código no es libre. Por ejemplo, los sistemas de archivos FAT32 y NTFS de
Windows son visibles desde Linux, pero los sistemas de archivos de Linux (Ext3 y
Ext4) no son reconocidos por Windows.
5. Gestión de Entrada y Salida (E/S)


Técnicas de gestión de los procesos de E/S: Existen tres formas de
coordinar el procesador con los dispositivos de entrada y salida (E/S) que
tienen diferentes velocidades.
o E/S programada: El procesador ejecuta un programa genérico que
atiende las operaciones de E/S, mientras el resto de programas
espera1. Es la forma más simple y menos eficiente2.
o E/S controlada por interrupciones: El procesador recibe una señal
de interrupción desde el dispositivo de E/S, y ejecuta un programa
especializado para cada tipo de operación de E/S llamado rutina de
manejo de la interrupción.3. Luego, recupera el contexto del programa
que estaba ejecutando. Se pueden priorizar las interrupciones para
evitar conflictos o deshabilitar las interrupciones cuando se está
tratando una.
o E/S mediante DMA: Un chip (Southbridge) especializado se
encarga de transferir los datos entre el dispositivo de E/S y la
memoria, sin ocupar al procesador4. El chip avisa al procesador
mediante una interrupción cuando termina.
Diferencias de velocidad: Existen dos técnicas para reducir el impacto de la
lentitud de los dispositivos de E/S en el rendimiento del procesador.
o
o
Caching: El procesador guarda en la memoria RAM los datos que
más usa, para evitar acceder al dispositivo de almacenamiento cada
vez5.
Spooling: Los datos se almacenan en registros intermedios de
memoria llamados buffers, que permiten al procesador y a los
dispositivos de E/S trabajar de forma simultánea. Se usa para la
impresión o el streaming de video.
Descargar