Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porGerardo de la Cruz Córdoba Modificado hace 9 años
1
Capítulo 2: Estructuras sistemas operativos
2
Capítulo 2: Estructuras sistemas operativos
Servicios del sistema operativo Interfaz de Usuario del sistema operativo Llamadas al sistema Tipos de llamadas al sistema Programas del sistema Diseño e implementación sistemas operativos Estructura del Sistema operativo Depuración de los sistemas operativos Generacion de sistemas operativos Inicio del sistema
3
Objetivos Describir los servicios provistos a usuarios, procesos y otros sistemas por el sistema operativo Discutir las distintas formas de estructurar un sistema operativo Explicar como se instalan y configuran los sistemas operativos y como inician
4
Servicios del Sistema operativo
Los sistemas operativos proven un entorno de ejecucion de programas y servicios a los programas y usuarios Un conjunto de servicios provistos por el SO ayudan a los usuarios: Interfaz de usuario – Casi todos los so tienen una interfaz de usuario(User Interface o UI). Las hay de varios tipos Command-Line (CLI), Graphics User Interface (GUI), Batch Ejecución de programas – El Sistema debe ser capaz de cargar un programa en memoria y ejectuarlo, terminar su ejecución ya sea de manera normal o anormal (indicando un error) Operaciones E/S - Un programa en ejecución puede requerir E/S, que puede involucrar un archive o dispositivos de E/S.
5
Servicios del Sistema operativo (Cont.)
Los sistemas operativos proven un entorno de ejecucion de programas y servicios a los programas y usuarios (Cont.): Manipulación del File-system - El file system es de particular interes. Los programas necesitan leer y escribir archivos y directories, poder crearlos,borrarlos, realizar busquedas,listar información acerca de ellos,manejar sus permisos. Comunicaciónes – Los procesos puede intercambiar información, en la misma computadora o entre computadoras de una red. Esta comunicación puede ser atraves de una memoria compartida o por intercambio de mensajes(paquetes enviados por el so) Detección de errores – El SO está constantemente atento a posibles errores Puede ocurrir en el hardware de memoria o en el CPU, en dispositivos de E/S, en programas de usuarios. Para cada tipo de error, el SO debera tomar la acción apropiada para asegurar un computo consistente y correcto Facilidades de depuración para los usuarios y programadores, para realizer un uso eficiente del sistema system
6
Servicios del Sistema operativo (Cont.)
Otro conjunto de funciones del SO existe para asegurar la operación eficiente del Sistema a través de compartir recursos. Asignación de recursos - cuando multiples usuarios o multiples jobs se ejecuten concurrentemente, deben asignarse recursos a cada uno de ellos Mucho tipos de recursos - CPU cycles, main memory, file storage, I/O devices. Accounting – Para mentener registro de qué usuarios utilizan qué tanto de los recursos del Sistema Protección y seguridad –los dueños de información almacenada en una computadora multi-usuario o en red deben controlar el uso de esa información, procesos concurrentes no deben interfarir entre ellos Protección asegura que todo acceso a los recursos del Sistema es controlado. Seguridad del Sistema de ajenos que requieran autentificación de usuarios, se extiende para defender a dispositivos de E/S externos de intentos inválidos de acceso.
7
Servicios del SO - Ejemplo
8
Interfaz de usuario SO - CLI
CLI o command interpreter permite el ingreso directo de comandos Algunas veces implementados en el kernel, otras como programas de sistemas Algunas veces hay distintos “sabores” implementados – shells Obtiene el commando del usuario y lo ejecuta Algunas veces son commandos incorporados, otras veces son solo el nombre de programas Con respect a este ultimo, agregar nuevas caracterisiticas no requieren la modificación de la shell
9
Bourne Shell Command Interpreter
10
Interfaz de usuario SO - GUI
Interfaz amigable, metáfora desktop Mouse, teclado y monitor Íconos representando archivos,programas,acciones,etc Los botones del mouse sobre objetos de la interfaz producen acciones (obtener información, opciones, ejecutar funciones, abrir directorios(carpetas) Inventada por Xerox PARC Muchos sistemas hoy en dia incorporan ambas interfaces CLI y GUI Microsoft Windows y su GUI y CLI “command” shell Apple Mac OS X y su GUI “Aqua” con el kernel de UNIX por debajo y muchas shells disponibles Unix y Linux tienen una CLI con varias GUI disponibles opcionalmente (CDE, KDE, GNOME)
11
Interfaz Touchscreen Dispositivos táctiles requieren nuevas interfaces
No necesita o no se desea el Mouse Acciones y selección basado en gestos Teclado virtual para el ingreso de texto Comandos de voz
12
The Mac OS X GUI
13
Llamadas al Sistema(System Call)
Interfaz de programación para los servicios que ofrece el SO Por lo general escritas en un lenguaje de alto nivel(C o C++) Se accede a través de una Application Programming Interface (API) en lugar de utilizer directamente las llamadas al sistema Las tres API más communes son Win32 API para Windows, POSIX API para sistemas basados en POSIX (incluyendo virtualmente todas las versions de UNIX, Linux y Mac OS X), y Java API para la Java virtual machine (JVM) Note that the system-call names used throughout this text are generic
14
Ejemplo de System Calls
Secuencia de una llamada al Sistema para copiar el contenido de un archivo en otro.
15
Example of Standard API
16
Implementación de una llamada al sistema
Por lo generar hay un numero asociado a cada llamada System-call interface mantiene una table indexada con el contenido de estos numeros La interfaz de la llamada invoca la llamada en el kernel del SO y retorna el estado de la y cualquier possible valor de retorno. El que invoca la llamada no necesita saber como esta implementada la misma Solo llama a la API y debera entender el format de respuesta que pueda retornar el SO. Los detalles de como se hace estan ocultos al programador.
17
Relación: API – System Call – SO
18
Pasaje de parametros a una llamada al sistema
Por lo general, se necesita mas información para invocar la llamada que solo conocer el identificador El tipo exacto y cuanta información lo determina el SO y la llamada Por lo general son usados tres metodos para el pasaje de parametros al SO Simple: pasa los parametros en lo registros En algunos casos podremos tener más parametros que registros Los parametros son guardados en un bloque en memoria y la dirección de bloque es pasada como parametron en un registro. Implementado por Linux y Solaris Los parametros son ubicados(pushed), en el stack(pila) desde el programa y son popped fuera del stack por el SO Los dos metodos anteriores no tiene limite en cuanto a la cantidad o tamaño de los parametros a ser pasados.
19
Pasaje de parametros usando una tabla
20
Tipos de llamadas de sistema
Control de procesos create process, terminate process end, abort load, execute get process attributes, set process attributes wait for time wait event, signal event allocate and free memory Dump memory if error Debugger for determining bugs, single step execution Locks for managing access to shared data between processes
21
Tipos de llamadas de sistema
Manejo de archivos create file, delete file open, close file read, write, reposition get and set file attributes Manejo de dispositivos request device, release device get device attributes, set device attributes logically attach or detach devices
22
Tipos de llamadas de sistema (Cont.)
Mantenimiento de información get time or date, set time or date get system data, set system data get and set process, file, or device attributes Comunicaciones create, delete communication connection send, receive messages if message passing model to host name or process name From client to server Shared-memory model create and gain access to memory regions transfer status information attach and detach remote devices
23
Tipos de llamadas de sistema (Cont.)
Protección Control access to resources Get and set permissions Allow and deny user access
24
Ejemplos de llamadas en Windows y Unix
25
Ejemplo de la biblioteca estándar C
Programa en C que invoca la llamada printf(), que llama a la llamada del sistema write()
26
Ejemplos: MS-DOS Mono tarea
La shell es invocada luego de que el Sistema inicia Metodo simple de ejecucion de programas Ningun proceso es creado Unico espacio de memoria La carga de un programa en memoria sobreescribe todo menos el kernel Al salir del programa -> se vuelve a cargar la shell At system startup running a program
27
Ejemplo: FreeBSD Variante de Unix Multitarea
User login -> se invoca la shell que el usuario elija La Shell ejecuta la llamada fork() para crear un proceso Ejecuta exec() para cargar un programa en un proceso La Shell espera al proceso que termine o continua con los commandos del usuario Los procesos finalizan con: code = 0 – no error code > 0 – error code
28
Programas del Sistema Los programas del Sistema proven un entorno de desarrollo a para nuevos programas y su ejecución. Ellos pueden dividirse en: Manipulación de Archivos Información de estado, algunas veces almacenada luego de modificarse el archivo Soporte para lenguajes de programación Carga y ejecución de programas Comunicación Servicios en segundo plano(Background) Programas de aplicación Muchas veces desde el punto de vistas de los usuarios, cataloga el Sistema entero segun los programas del Sistema y no por las llamadas al sistema
29
Programas del Sistema Los programas del Sistema proven un entorno de desarrollo a para nuevos programas y su ejecución. Algunas veces se prove de una interfaz de llamadas simple ; otras veces es una tarea compleja Gestion de archivos – Crear,eliminar,copiar,renombrar,imprimir,depurar,listar y todo lo referido a archivos y directorios Información de estado Algunos preguntan al SO por informacion - Fecha ,hora, espacio disponible en memoria, espacio en disco, numero de usuarios,etc Otros proven información detallada con la performance, logueo y depuración de información Por lo general, estos programas formatean e imprimen la salida(format) a la terminal o algun dispositivo de salida Algunos sistemas implementan un registro – usado para almacenar y recuperar información de configuración
30
Programas del Sistema (Cont.)
Editor de archivos Editores de texto para crear y modificar archivos Comandos especiales para realizar busquedas dentro del contenido del archive o realizer alguna transformación del texto. Soporte a lenguajes de programación – Compiladores, ensambladores, depuradores e interpretes Carga y ejecución de programas- Cargadores absolutos, cargadores realojables,editores,depuradores de sistemas para lenguajes de alto nivel y maquina Comunicaciones- Impelmentan mecanismos para crear conexiones virtuales entre procesos,usuarios y otros sitemas. Permite a usuarios enviarse mensajes a sus pantallas, navegar páginas web,enviar correo electronico, iniciar session remotamente, transferir archivos desde una maquina a otra
31
Programas del Sistema (Cont.)
Servicios en Segundo plano Iniciados al iniciar el Sistema(boot time) Algunos finalizan poco despues de iniciar Otros se mantienen hasta que se apague el equipo Proveen cheque de disco, procesos programados, error de logging, serivios de impresion Se ejecutan en un context de usuario, no de Kernel. Conocidos como services, subsystems, daemons Programas de Aplicación No pertenecen al sistema Ejecutados por los usuarios No son considerados parte del SO Ejecutados desde la línea de commandos, mouse click, autentificación dactilar, etc.
32
Diseño e implementación sistemas operativos
No hay una receta para el diseño e implementación de un SO, pero hay algunas consideraciones que han sido exitosas. La estructura interna de diferentes SO puede variar enormemente. Se comienza el diseño definiendo metas y especificaciónes Afectado por la elección del HW y tipo de sistema Metas de Usuarios y metas del Sistema Metas de Usuarios – El SO debe ser facil de aprender,seguro,rapido Metas de Sistema – El SO debe ser facil de diseñar,implementar y mantener. De igual forma debe ser flexible,seguro,libre de errors y eficiente.
33
Diseño e implementación sistemas operativos (Cont.)
Principio importante separar Política: ¿Que debe hacerse? Mecanismo: ¿Como hacerlo? Los mecanismos determinan como hacer algo, las políticas deciden que debe hacerse Separar la política del mecanismo es un principio importante, ya que permite la maxima flexibilidad si decisions políticas son cambiadas en un future.(ejemplo timer) Especificar y diseñar un SO es una importantisima tarea de la software engineering
34
Implementación La gran parte
Los primeros SO eran puramente escritos en ensamblador Luego en lenguajes de programación como Algol,PL/1 Ahora C, C++ En la actualidad es una mezcla de varios lenguajes Niveles bajos en ensamblador El Main en C Los programas de sistema es C, C++, y lenguajes de scripting como PERL, Python, shell scripts Al usar un lenguaje de alto nivel se puede portar facilmente a diferentes hardware Pero es mas lento… La Emulación nos permite ejecutar un SO en un HW no nativo
35
Estructura del Sistema Operativo
Un SO de proposito general es un gran programa Varios caminos para estructurar: Estructura simple– MS-DOS Mas compleja -- UNIX En capas – an abstrcation Microkernel -Mach
36
Estructura Simple -- MS-DOS
MS-DOS – escrito para proveer la mayor funcionalidad en el menor espacio No se divide en modulos Aunque MS-DOS tiene algo de estrucutra, sus intefaces y niveles de funcionalidad no están bien separados
37
Mas complejo -- UNIX UNIX – limitado por funcionalidades del hardware, el SO UNIX original tenia una estructura limitada, con dos partes separadas: Programas del sistema El kernel Todo abajo de la interfaz de llamadas al Sistema y arriba del hardware Provee: Sistema de archivos, CPU scheduling, manejos de memoria y otras operaciones del SO. Un gran numero de fucniones para una capa
38
Estructura del Sistema UNIX
Beyond simple but not fully layered
39
Enfoque por capas El SO está dividido en niveles o capas, cada uno construídos sobre los anteriores. La capa más baja(layer 0), es el hardware; la mas alta(layer N) es la interfaz de usuario. Con modularidad, las capas se seleccionan de tal manera que cada una utilice funciones(operaciones) y servicios exclusivamente de capas inferiors.
40
Estructura del Sistema de Microkernel
Mueve mucho del kernel al espacio del “usuario” El SO Mach es un ejemplo de microkernel Mac OS X kernel (Darwin) esta basado parcialmente sobre Mach La comunicación entre módulos se realiza con paso de mensajes Beneficioes: Más fácil de extender un microkernel Más facil portar el SO a otras arquitecturas Mas confiable (menos código se ejecuta en modo kernel) Más seguro Problemas: Sobrecarga de comunicación entre los espacios de usuario y kernel
41
Estructura del Sistema de Microkernel
42
Modulos La mayoría de los SO modernos implementan módulos de kernel
Enfoque orientado a objetos Cada componente base está separado Cada uno habla con los otros a través de interfaces comunes Cada uno puede cargarse(al kernel) conforme se necesita En general, similar a las capas, pero más flexible Linux, Solaris, etc
43
Solaris Modular Approach
44
Sistemas Hibridos Los actuals SO no usan un solo modelo
Hybrid combines multiple approaches to address performance, security, usability needs Linux and Solaris kernels in kernel address space, so monolithic, plus modular for dynamic loading of functionality Windows mostly monolithic, plus microkernel for different subsystem personalities Apple Mac OS X hybrid, layered, Aqua UI plus Cocoa programming environment Below is kernel consisting of Mach microkernel and BSD Unix parts, plus I/O kit and dynamically loadable modules (called kernel extensions)
45
Estructura Mac OS X
46
iOS Apple mobile OS for iPhone, iPad
Structured on Mac OS X, added functionality Does not run OS X applications natively Also runs on different CPU architecture (ARM vs. Intel) Cocoa Touch Objective-C API for developing apps Media services layer for graphics, audio, video Core services provides cloud computing, databases Core operating system, based on Mac OS X kernel
47
Android Developed by Open Handset Alliance (mostly Google) Open Source
Similar stack to IOS Based on Linux kernel but modified Provides process, memory, device-driver management Adds power management Runtime environment includes core set of libraries and Dalvik virtual machine Apps developed in Java plus Android API Java class files compiled to Java bytecode then translated to executable than runs in Dalvik VM Libraries include frameworks for web browser (webkit), database (SQLite), multimedia, smaller libc
48
Android Architecture
49
Depuración de SO Debugging is finding and fixing errors, or bugs
El SO genera archivos de logs ,que contienen información del error El fallo de una aplicacion puede generar un archivo core dump ,capturando el contenido de memoria del procesos El fallo de un SO puede generar un archivo crash dump ,capturando el contenido de memoria del kernel Mas que registrar fallas, utilizar para optimizer el sistema Monitoreo de actividades , guardando información para su posterior analisis. Kernighan’s Law: “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”
50
Performance Tuning Improve performance by removing bottlenecks
OS must provide means of computing and displaying measures of system behavior For example, “top” program or Windows Task Manager
51
DTrace DTrace tool in Solaris, FreeBSD, Mac OS X allows live instrumentation on production systems Probes fire when code is executed within a provider, capturing state data and sending it to consumers of those probes Example of following XEventsQueued system call move from libc library to kernel and back
52
Dtrace (Cont.) DTrace code to record amount of time each process with UserID 101 is in running mode (on CPU) in nanoseconds
53
Generación de un SO Los SO estan diseñados para ejecutarse en varios tipos de computadoras; el SO debe “saber” configurarse para cada una de las diferentes computadoras. El programa SYSGEN obtiene información referida a una configuración especifica de HW Es usada para compilar una version especifica del kernel o optimizarse. Es mas eficiente que generar un kernel general.
54
Inicio del Sistema (boot)
Cuando se enciende la computadora, la ejecución inicia en una posición fija de memoria El Firmware ROM tiene el código inicial de arranque(initial boot code) Los SO deben estar especificado para un hardware, por eso el hardware es quien lo “inicia” Unas líneas de codigo – bootstrap loader, esta almacenado en una ROM o EEPROM , busca e kernel, lo carga en memoria y lo inicia Algunas veces se requieren dos etapas.Se carga un programa desde ROM que inicia el bootstrap desde un disco Un gestor de arranque conocido, GRUB, permite selecciónar un kernel desde diferentes discos,veriones y opciones del kernel. Al cargar el kernel el Sistema ya se encuentra en ejecución
55
Fin del Capítulo 2
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.