Modelos De S.O
Enviado por diaran2222 • 6 de Diciembre de 2012 • 1.484 Palabras (6 Páginas) • 264 Visitas
Componentes típicos de un SO
Procesos
Memoria
entrada/salida
redes
protección
archivos
Intérprete de órdenes
Gestión de procesos
Un proceso es un programa en ejecución. Para poder ejecutarse, un proceso necesita tiempo de CPU, una porción de memoria, archivos, E/S y demás recursos.
Responsabilidades del S.O.:
creación y eliminación de procesos
planificación de procesos: repartir la CPU entre los procesos activos
sincronización entre procesos
comunicación entre procesos
Gestión de memoria
La memoria es un recurso escaso por el que compiten los distintos procesos.
Responsabilidades del S.O.:
conocer qué zonas de memoria están libres y cuáles están ocupadas
decidir qué procesos hay que cargar cuando haya memoria libre
reservar y liberar zonas de memoria según se solicite
memoria virtual: utilizar el almacenamiento secundario como una extensión de la memoria principal
Gestión de la E/S
La E/S es un conjunto de dispositivos muy variados y complejos de programar.
Objetivos del S.O.:
proporcionar una interfaz uniforme para el acceso a los dispositivos (independencia del dispositivo)
proporcionar manejadores para los dispositivos
concretos
tratar automáticamente los errores más típicos
para los dispositivos de almacenamiento, utilizar cachés
para los discos, planificar de forma óptima las peticiones
Sistema de archivos
Un archivo es un conjunto de datos identificado por un nombre. Los archivos se almacenan en dispositivos de E/S. Un archivo es un concepto de alto nivel que no existe en el hardware.
Funciones del S.O.:
manipulación de archivos: crear, borrar, leer, escribir...
manipulación de directorios
ubicar los archivos y directorios en los dispositivos de almacenamiento secundario
automatizar ciertos servicios: copia de seguridad, versiones, etc
Sistema de protección
La protección abarca los mecanismos destinados a controlar el acceso de los usuarios a los recursos, de acuerdo con los privilegios que se definan.
Objetivos del S.O.:
definir el esquema general de protección: clases de usuarios, clases de permisos/privilegios, etc.
definir mecanismos de acceso a los recursos: contraseñas, llaves, capacidades, etc.
controlar el acceso a los recursos, denegando el acceso cuando no esté permitido
Sistema de protección
La protección abarca los mecanismos destinados a controlar el acceso de los usuarios a los recursos, de acuerdo con los privilegios que se definan.
Objetivos del S.O.:
definir el esquema general de protección: clases de usuarios,
clases de permisos/privilegios, etc.
definir mecanismos de acceso a los recursos: contraseñas,
llaves, capacidades, etc.
controlar el acceso a los recursos, denegando el acceso
cuando no esté permitido
Servicios del SO
El S.O. ofrece a los programas una serie de servicios para trabajar en el computador:
Ejecución de programas
Operaciones de E/S
Manipulación de archivos y directorios
Comunicación entre procesos
Comunicación con equipos remotos
Administración de la protección y seguridad
Leer el estado del sistema (hora, nº de procesos, etc.)
Servicios adicionales
Aparte de los servicios básicos, el S.O. puede ofrecer algunas funciones para
optimizar el uso del sistema:
Compartición de recursos
Contabilidad (accounting) - conocer el consumo de recursos
Interfaces con los servicios del SO
Para el programador:
LLAMADAS AL SISTEMA en lenguaje máquina o en alto nivel (ej. lenguaje C)
Para el usuario:
intérprete de órdenes
programas del sistema
¿Qué aspecto tiene una llamada al
sistema?
Windows:
handle = OpenFile(“mifichero”,ofstruct,OF_READ)
UNIX:
fd = open(“mifichero”,O_RDONLY);
MSDOS:
Llamadas al sistema
El S.O. ofrece una gama de servicios a los programas.
Los programas acceden a estos servicios mediante llamadas al sistema.
Las llamadas al sistema son la interfaz entre el programa en ejecución y el S.O.
Es la única forma en la que un programa puede solicitar operaciones al S.O.
Implementación de las llamadas al
sistema
¿Cómo se implementa la llamada?
Habitualmente, mediante una instrucción especial de la máquina (syscall, int, trap...)
La instrucción cambia automáticamente a modo privilegiado
Si programamos en un lenguaje de alto nivel, escribimos la llamada al sistema como una
subrutina, y el compilador la sustituye por la instrucción de máquina correspondiente.
Implementación de las llamadas al
sistema (2)
Muchas llamadas necesitan parámetros, ¿cómo los pasamos al S.O.?
guardándolos en registros de la máquina (muy típico)
en una tabla en memoria principal
poniéndolos en la pila
Ejemplo:
llamadas al sistema de Unix
Procesos: crear proceso (fork), enviar señal a un proceso (kill), tratar señales (signal)…
Memoria: pedir más memoria, liberar memoria...
Archivos: open, close, creat, read, write, mkdir; bloquear fichero (lockf)…
Redes: crear conexión (socket), cerrar conexión...
Protección: cambiar permisos (chmod), cambiar propietario (chown)…
Programas del sistema
Las llamadas al sistema nos proporcionan una interfaz para el programador. Un usuario final
interactúa con el S.O. mediante programas previamente compilados.
El entorno del S.O. Suele proveer utilidades básicas, llamadas programas del sistema, para:
manipular ficheros (ej. ls, cp, etc.)
editar documentos (emacs, edit, etc.)
darnos un entorno de trabajo (ej. escritorio Windows)
desarrollar programas (compiladores, enlazadores, etc.)
comunicarnos con
...