Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf ·...
Transcript of Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf ·...
14/10/2009
1
Chapter 1: IntroductionChapter 1: IntroductionINGENIERÍA INFORMÁTICA
SISTEMAS OPERATIVOSSISTEMAS OPERATIVOS
M. Teresa Higuera ToledanoM. Teresa Higuera Toledano
Departamento de Arquitectura de Departamento de Arquitectura de Computadores y Automática Computadores y Automática
Facultad de InformáticaFacultad de Informática
Universidad Complutense de MadridUniversidad Complutense de Madrid
Tema 1Tema 1IntroducciónIntroducción
14/10/2009
2
¿Qué es un sistema operativo?¿Qué es un sistema operativo?
Tipos de sistema operati osTipos de sistema operati os
IntroduciónIntrodución
Tipos de sistema operativosTipos de sistema operativos
Arranque del sistema operativo Arranque del sistema operativo
Estructura de los sistemas operativosEstructura de los sistemas operativos
Conceptos de los sistemas operativosConceptos de los sistemas operativosConceptos de los sistemas operativosConceptos de los sistemas operativos
Llamadas al sistemaLlamadas al sistema
¿Qué es un sistema operativo?¿Qué es un sistema operativo?
UnUn programaprograma queque actuaactua comocomo intermediariointermediario entre elentre elUn Un programaprograma queque actuaactua comocomo intermediariointermediario entre el entre el usuariousuario y el hardware del y el hardware del computadorcomputador..
ObjectivosObjectivos del sistema operativo:del sistema operativo:•• Ejecutar programas y facilitar la solución de los problemas Ejecutar programas y facilitar la solución de los problemas
del usuariodel usuario
•• Hacer un uso conveniente del computadorHacer un uso conveniente del computador
Usar el computador de forma eficienteUsar el computador de forma eficienteUsar el computador de forma eficienteUsar el computador de forma eficiente
Proporcionar una máquina virtual extendidaProporcionar una máquina virtual extendida
14/10/2009
3
¿Qué es un sistema operativo?¿Qué es un sistema operativo?
UsuarioUsuario11
UsuarioUsuario11
UsuarioUsuario11
UsuarioUsuario11……
PROGRAMAS DEL SISTEMA Y APLICACIONESPROGRAMAS DEL SISTEMA Y APLICACIONES
Ensamblador Compilador Editor … Bases de datosEnsamblador Compilador Editor … Bases de datos
SISTEMA OPERATIVOSISTEMA OPERATIVO
ARQUITECTURAARQUITECTURASUBYACENTESUBYACENTE
¿Qué funciones realiza?¿Qué funciones realiza?
Gestor de recursos (UCP, memoria, ...)Gestor de recursos (UCP, memoria, ...)•• Asignación y recuperación de recursosAsignación y recuperación de recursosg y pg y p
•• Protección de los usuariosProtección de los usuarios
•• Contabilidad/monitorizaciónContabilidad/monitorización
•• Soporte de usuarioSoporte de usuario
Máquina extendida (servicios)Máquina extendida (servicios)•• Ejecución de programas (procesos)Ejecución de programas (procesos)
•• Órdenes de E/SÓrdenes de E/S
•• Operaciones sobre archivosOperaciones sobre archivos•• Operaciones sobre archivosOperaciones sobre archivos
•• Detección y tratamiento de erroresDetección y tratamiento de errores
Interfaz de usuarioInterfaz de usuario•• ShellShell
14/10/2009
4
¿Qué funciones realiza?¿Qué funciones realiza?
Funcionamiento del computadorFuncionamiento del computador•• Una o más CPUs, controladores de dispositivo conectados a Una o más CPUs, controladores de dispositivo conectados a
través de un bús común que proporciona acceso a la memoria través de un bús común que proporciona acceso a la memoria compartidacompartida
•• Ejecución concurrente de la de CPUs y de los dispositivos que Ejecución concurrente de la de CPUs y de los dispositivos que que compiten por los ciclos de memoriaque compiten por los ciclos de memoria
C lC l d dd d
MEMORIAMEMORIA
CPUCPUControlControlsonidosonido
Control USBControl USBadaptadoradaptador
gráficográfico
Evolución de los sistemas operativosEvolución de los sistemas operativos
Primera generación 1945 Primera generación 1945 -- 19551955
Tubos de vacío, tarjetas cableadasTubos de vacío, tarjetas cableadas
Segunda generación 1955 Segunda generación 1955 -- 19651965
Transistores, sistemas batchTransistores, sistemas batch
Tercera generación 1965 Tercera generación 1965 –– 19801980
Circuitos integrados y multiprogramaciónCircuitos integrados y multiprogramaciónCircuitos integrados y multiprogramaciónCircuitos integrados y multiprogramación
Cuarta generación 1980 Cuarta generación 1980 –– hoyhoy
Ordenadores personalesOrdenadores personales
14/10/2009
5
Evolución de los sistemas operativosEvolución de los sistemas operativos
Primeros sistemas Primeros sistemas batchbatch (2ª generación)(2ª generación)( g )( g )
Lleva las tarjetas al 1401Lleva las tarjetas al 1401
Lee tarjetas a la cintaLee tarjetas a la cinta
Monta la cinta en el 7094 que realiza el cálculoMonta la cinta en el 7094 que realiza el cálculo
Monta la cinta en el 1401 que imprime los resultadosMonta la cinta en el 1401 que imprime los resultados
Evolución de los sistemas operativosEvolución de los sistemas operativos
TRABAJO 1TRABAJO 1
PARTICIONESPARTICIONESTRABAJO 2TRABAJO 2
TRABAJO 3TRABAJO 3
SISTEMASISTEMAOPERATIVOOPERATIVO
PARTICIONES PARTICIONES DEDE
MEMORIAMEMORIA
Multiprogramación (3ª generación)Multiprogramación (3ª generación)
Simultaneous Peripheral Operation On LineSimultaneous Peripheral Operation On Line
Tiempo compartido: MULTICS, UNIXTiempo compartido: MULTICS, UNIX
14/10/2009
6
Evolución de los sistemas operativosEvolución de los sistemas operativos
Sistemas abiertos (4ª generación)Sistemas abiertos (4ª generación)
Disk Operating SystemDisk Operating System
MicroSoftMicroSoft Disk Operating System (MSDisk Operating System (MS--DOS)DOS)
Graphical User InterfaceGraphical User Interface
Windows 3.x, 95, 98, NT, 2000, Me, XPWindows 3.x, 95, 98, NT, 2000, Me, XP
Linux (Red Hat,Linux (Red Hat, DebianDebian, Caldera, ...), Caldera, ...)Linux (Red Hat, Linux (Red Hat, DebianDebian, Caldera, ...), Caldera, ...)
SistemasSistemas operativosoperativos de Redde Red
SistemasSistemas operativosoperativos distribuidosdistribuidos
¿Qué es un sistema operativo? ¿Qué es un sistema operativo?
Tipos de sistema operati osTipos de sistema operati os
IntroduciónIntrodución
Tipos de sistema operativosTipos de sistema operativos
Arranque del sistema operativoArranque del sistema operativo
Estructura de los sistemas operativosEstructura de los sistemas operativos
Conceptos de los sistemas operativosConceptos de los sistemas operativosConceptos de los sistemas operativosConceptos de los sistemas operativos
Llamadas al sistemaLlamadas al sistema
14/10/2009
7
Tipos de sistemas operativosTipos de sistemas operativos
Batch:Batch: ejecuta los procesos de usuario por “lotes”ejecuta los procesos de usuario por “lotes”
Interactivo:Interactivo: ejecuta los procesos interactuando con ejecuta los procesos interactuando con el usuarioel usuario
Tiempo Real:Tiempo Real: ejecuta procesos de tiempo real ejecuta procesos de tiempo real (responden a eventos dentro de un cierto período de (responden a eventos dentro de un cierto período de ( p p( p ptiempo)tiempo)
Distribuido:Distribuido: el SO se ejecuta en una red de el SO se ejecuta en una red de ordenadores pero el usuario opera como si el sistema ordenadores pero el usuario opera como si el sistema fuera uno solo.fuera uno solo.
Tipos de sistemas operativosTipos de sistemas operativos
SistemasSistemas operativosoperativos parapara mainframesmainframesBatch, Batch, transaccionestransacciones, , tiempotiempo compartidocompartido: : OS/390OS/390
SistemasSistemas operativosoperativos parapara servidoresservidoresServiciosServicios de de impresiónimpresión, , ficherosficheros, web: , web: Unix, Windows Unix, Windows 2000, Linux2000, Linux
SistemasSistemas operativosoperativos multiprocesadormultiprocesadorOrdenadoresOrdenadores paralelosparalelos, , multicomputadormulticomputador, , multiprocesadormultiprocesador: : EncoreEncore
SistemasSistemas operativosoperativos parapara ordenadoresordenadores personalespersonales::C SC S OSOSCPM, MSCPM, MS--DOS, DOS, WindowsWindows
SistemasSistemas operativosoperativos de de tiempotiempo realrealHard realHard real--time system, soft realtime system, soft real--time system: time system: RTEMSRTEMS
SistemasSistemas operativosoperativos empotradosempotrados: : PalmOSPalmOS, Windows CE, , Windows CE, AndroideAndroide
14/10/2009
8
Tipos de sistemas operativosTipos de sistemas operativos
Nº procesos
1
1
más de 1
Nº usuarios
MonoprocesoMonousuario
MultiprocesoMonousuario
más de 1MultiprocesoMultiusuario
Tipos de sistemas operativosTipos de sistemas operativos
Sistemas operativos para sistemas paralelosSistemas operativos para sistemas paralelos(muy acoplados)y p
RAMCPU CPU CPU CPU
14/10/2009
9
Tipos de sistemas operativosTipos de sistemas operativos
Sistemas operativos para sistemas distribuidosSistemas operativos para sistemas distribuidos(poco acoplados)p p
LANWANWAN
Tipos de sistemas operativosTipos de sistemas operativos
Sistemas operativos de tiempo realSistemas operativos de tiempo realControl industrialControl industrial
MisilesMisiles
Sistemas multimediaSistemas multimedia
Si un evento no se trata en el tiempoSi un evento no se trata en el tiempoespecificadoespecificado (muy pequeño)(muy pequeño)
¡EL SISTEMA FALLA!¡EL SISTEMA FALLA!
Se requiere un sistema capaz de responder Se requiere un sistema capaz de responder
dentro de un tiempo limitadodentro de un tiempo limitado
14/10/2009
10
Tipos de sistemas operativosTipos de sistemas operativos
Sistemas de tiempo realSistemas de tiempo real
2 niveles de exigencia2 niveles de exigencia
TR RIGUROSOTR RIGUROSO
(hard real time)(hard real time)
Poca memoria secundariaPoca memoria secundaria
TR MODERADOTR MODERADO
(soft real time)(soft real time)
Mezcla de tareas muy distintasMezcla de tareas muy distintas
Caché, ROMCaché, ROM
S.O. muy simpleS.O. muy simple
No sirven para control industrialNo sirven para control industrial
Útiles para:Útiles para:
MultimediaMultimedia
Realidad virtualRealidad virtual
¿Qué es un sistema operativo? ¿Qué es un sistema operativo?
Tipos de sistema operativosTipos de sistema operativos
IntroduciónIntrodución
p pp p
Arranque del sistema operativo Arranque del sistema operativo
Estructura de los sistemas operativosEstructura de los sistemas operativos
Conceptos de los sistemas operativosConceptos de los sistemas operativos
Llamadas al sistemaLlamadas al sistema
14/10/2009
11
• El Reset carga valores predefinidos en registros
• CP <- dirección de arranque del cargador ROM
• Se ejecuta el cargador ROM del sistema– Test del sistema
Arranque del computadorArranque del computador
Test del sistema– Trae a memoria el boot del SO
0
2.047
Dirección Celdas
Unidad de Memoria
ZonaROM
0
Dirección Celdas
Unidad de Memoria
• En el caso del PC la ROM contiene, además, sw de E/S (BIOS)
1.048.575
1.046.528
1.048.575
ZonaROM
• El SO está almacenado en el disco
Arranque del Sistema operativoArranque del Sistema operativo
Programa cargador(identificador) Disco
Sistema Operativo
14/10/2009
12
• El cargador ROM carga el sector de boot del SO y le da control
• El boot del SO carga el SO residente y da control al programa de arranque del SO que:
Arranque del sistema operativoArranque del sistema operativo
arranque del SO, que:
– Comprueba el hardware
– Comprueba el sistema de ficheros
– Establece las tablas del SO
– Crea procesos (según el tipo de SO)
• Proceso INIT
• Procesos o tareas del sistema (demonios)Procesos o tareas del sistema (demonios)
• Procesos de login (uno por terminal)
– Tras la autenticación, el proceso login se convierte en shell
• Parada del sistema: Copia a disco de la información necesaria mantenida en memoria por razones de eficiencia; si no se efectúa así, el sistema queda corrompido y en el próximo arranque debe
Parada del sistemaParada del sistema
as , e s ste a queda co o p do y e e p ó o a a que debeser “reparado”.
• Hibernación: copia a disco de la imagen completa de memoria principal ; rearranque rápido a la misma situación de apagado.
• Suspensión: (Standby): apagado de casi todo excepto la memoria; reanudación instantánea.
14/10/2009
13
¿Qué es un sistema operativo? ¿Qué es un sistema operativo?
Tipos de sistema operativosTipos de sistema operativos
Capítulo 1: IntroduciónCapítulo 1: Introdución
p pp p
Arranque del sistema operativo Arranque del sistema operativo
Estructura de los sistema operativosEstructura de los sistema operativos
Conceptos de los sistemas operativosConceptos de los sistemas operativos
Llamadas al sistemaLlamadas al sistema
Niveles de los sistemas operativosNiveles de los sistemas operativos
HW
14/10/2009
14
Estructuras de los SOEstructuras de los SOSistema monolítico: Sistema monolítico: OSOS--360, MS360, MS--DOS, UNIX, LINUXDOS, UNIX, LINUX
PROCEDIEMIENTO PROCEDIEMIENTO PRINCIPALPRINCIPAL
PROCEDIEMIENTOSPROCEDIEMIENTOS
DE SERVICIODE SERVICIOLlamadas al sistemaLlamadas al sistema
PROCEDIEMIENTOSPROCEDIEMIENTOS
DE UTILIDADDE UTILIDAD
Estructuras de los SOEstructuras de los SOSistemas por capas: Sistemas por capas: OS/2, OS/2, MinixMinix
ÓÓ
Tarea Tarea de discode disco
Tarea Tarea de relojde reloj
Tarea Tarea sistemasistema
Tarea Tarea de ttyde tty ……
Gestor de memoriaGestor de memoria Gestor de ficherosGestor de ficheros
initinit ……Proceso deProceso deusuariousuario
Proceso deProceso deusuariousuario
Proceso deProceso deusuariousuario
KernelKernel
GESTIÓN DE PROCESOSGESTIÓN DE PROCESOS
14/10/2009
15
Estructuras de los SOEstructuras de los SOMáquinas virtuales: Máquinas virtuales: VM/370, VM/370, VMWareVMWare, KVM, KVM
CMSCMS CMSCMSCMSCMS
VM/370VM/370
Hardware subyacente del 370Hardware subyacente del 370
Llamadas Llamadas al sistemaal sistema
TrapTrap
InstruccionesInstruccionesde E/S de E/S TrapTrap
Máquinas virtuales 370Máquinas virtuales 370
yy
Estructuras de los SOEstructuras de los SOEl modelo clienteEl modelo cliente--servidor: servidor: Mac OS XMac OS X
ProcesoProcesoClienteCliente
ProcesoProcesoClienteCliente
ServidorServidorde procesosde procesos
ServidorServidorde terminalde terminal
ServidorServidorde ficherode fichero
ServidorServidorde memoriade memoria
……
ModoModo
ModoModousuariousuario
MicrokernelMicrokernelModoModokernelkernel
14/10/2009
16
Estructuras de los SOEstructuras de los SOEl modelo clienteEl modelo cliente--servidor en un sistema distribuido: servidor en un sistema distribuido: AmoebaAmoeba,,MiddlewereMiddlewere:: JavaJava--RMI, CORBA, DCE, DCOM RMI, CORBA, DCE, DCOM
ProcesoProcesoClienteCliente
Máquina 1Máquina 1
ServidorServidorde procesosde procesos
ServidorServidorde terminalde terminal
ServidorServidorde ficherode fichero
ServidorServidorde memoriade memoria
kernelkernel kernelkernelkernelkernelkernelkernel kernelkernel
Máquina 3Máquina 3Máquina 2Máquina 2 Máquina 5Máquina 5Máquina 4Máquina 4
REDREDMensaje desde el Mensaje desde el cliente al servidorcliente al servidor
kernelkernel kernelkernelkernelkernelkernelkernel kernelkernel
¿Qué es un sistema operativo? ¿Qué es un sistema operativo?
Tipos de sistema operativosTipos de sistema operativos
Capítulo 1: IntroduciónCapítulo 1: Introdución
p pp p
Arranque del sistema operativo Arranque del sistema operativo
Estructura de los sistemas operativosEstructura de los sistemas operativos
Conceptos de los sistemas operativosConceptos de los sistemas operativos
Llamadas al sistemaLlamadas al sistema
14/10/2009
17
Conceptos de sistemas operativosConceptos de sistemas operativos
GESTIÓN DE PROCESOSGESTIÓN DE PROCESOS
Proceso: Proceso: Un programa en ejecuciónUn programa en ejecución
Espacio de direccionamientoEspacio de direccionamiento
Contexto (entrada a la tabla de procesos)Contexto (entrada a la tabla de procesos)
Operaciones asociadas a un procesoOperaciones asociadas a un proceso
Identificadores asociadas a un procesoIdentificadores asociadas a un proceso
Conceptos de sistemas operativosConceptos de sistemas operativos
Espacio de direccionamientoEspacio de direccionamientoPrograma ejecutable (texto)Programa ejecutable (texto)DatosDatosDatosDatosPilaPila
Contexto (entrada a la tabla de procesos)Contexto (entrada a la tabla de procesos)Registros de la CPURegistros de la CPUPC, SP, PSW.PC, SP, PSW.Tabla de ficheros abiertosTabla de ficheros abiertosMapa de memoriaMapa de memoria..............
14/10/2009
18
Los tres segmentos de un proceso: texto, datos, pila
Conceptos de sistemas operativosConceptos de sistemas operativos
PilaPilaFFFFFFFF
TextoTexto
DatosDatos
00000000
brk (newDirection)brk (newDirection)
Conceptos de sistemas operativosConceptos de sistemas operativos
Operaciones asociadas a un proceso Operaciones asociadas a un proceso Crear un proceso (relación padreCrear un proceso (relación padre--hijo)hijo)Terminar un procesoTerminar un procesoTerminar un procesoTerminar un procesoComunicación y sincronización entre procesosComunicación y sincronización entre procesosPedir/ liberar memoriaPedir/ liberar memoriaEsperar a que termine uno de los hijosEsperar a que termine uno de los hijosCargar una imagen de textoCargar una imagen de textoEstablecer/tratar/enviar señalesEstablecer/tratar/enviar señales
Identificadores asociados a un procesoIdentificadores asociados a un procesouiduid, identificador del propietario del proceso, identificador del propietario del procesopidpid, identificador del propio proceso, identificador del propio procesogidgid, identificador del grupo al que pertenece el proceso , identificador del grupo al que pertenece el proceso
14/10/2009
19
Conceptos de sistemas operativosConceptos de sistemas operativos
COMUNICACIÓN Y SINCRONIZACIÓN ENTRE COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOSPROCESOS
Procesode Usuario
SO
Procesode Usuario
Procesode Usuario
SO SO
Procesode Usuario
UN COMPUTADOR DOS COMPUTADORES
SO SO
Conceptos de sistemas operativosConceptos de sistemas operativos
•• ServiciosServicios de de comunicacióncomunicación::–– CrearCrear el el mecanismomecanismo de de comunicacióncomunicación
–– EnviarEnviar datosdatos a un a un procesoproceso
–– RecibirRecibir datosdatos de un de un procesoproceso
–– DestruirDestruir el el servicioservicio de de comunicacióncomunicación
•• ServiciosServicios de de sincronizaciónsincronización::–– CrearCrear el el mecanismomecanismo de de sincronizaciónsincronización
–– BloquearBloquear un un procesoproceso hastahasta queque ocurraocurra un un eventoevento
–– DespertarDespertar a un a un procesoproceso bloqueadobloqueado
–– DestruirDestruir el el mecanismomecanismo de de sincronizaciónsincronización
14/10/2009
20
Conceptos de sistemas operativosConceptos de sistemas operativos
•• ComunicaciónComunicación síncronasíncrona::–– Los dos Los dos procesosprocesos hanhan de de ejecutarejecutar los los serviciosservicios de de
comunicacióncomunicación al al mismomismo tiempotiempo
enviar
EsperaEsperarecibir enviar
recibir
Proceso A
Ava
nza
la
ejec
uci
ón
Proceso AProceso B
Proceso B
El proceso A espera al B El proceso B espera al A
•• ComunicaciónComunicación asíncronaasíncrona–– Los dos Los dos procesosprocesos no no tienetiene queque ejecutarejecutar los los serviciosservicios de de
comunicacióncomunicación al al mismomismo tiempotiempo
Conceptos de sistemas operativosConceptos de sistemas operativos
INTERBLOQUEOS: INTERBLOQUEOS: Se producen por la competencia Se producen por la competencia entre procesos por conseguir los recursos del entre procesos por conseguir los recursos del sistemasistema
14/10/2009
21
Conceptos de sistemas operativosConceptos de sistemas operativos
GESTIÓN DE MEMORIAGESTIÓN DE MEMORIA
Asignación/liberación de memoriaAsignación/liberación de memoria
Mecanismos de protecciónMecanismos de protección
Gestión de huecos y compactaciónGestión de huecos y compactación
Gestión de la memoria virtual (paginación, segmentación)Gestión de la memoria virtual (paginación, segmentación)
Conceptos de sistemas operativosConceptos de sistemas operativos
•• MemoriaMemoria:: vector vector enormeenorme de de palabraspalabras o bytes, o bytes, cadacada unouno con con susupropiapropia direccióndirección. . –– CompartidoCompartido porpor UCP y UCP y dispositivosdispositivos E/S.E/S.
V látilV látil i di d t idt id ii ll i ti t f llf ll–– VolátilVolátil: : pierdepierde susu contenidocontenido sisi el el sistemasistema fallafalla..
•• El SO El SO tienetiene la la responsabilidadresponsabilidad de de gestionargestionar los los siguientessiguientesaspectosaspectos de la de la memoriamemoria::–– MantenerMantener un un mapamapa de de laslas partespartes de de memoriamemoria en en usouso y y sabersaber
quiénquién laslas estáestá usandousando..–– DecidirDecidir quéqué procesosprocesos se se debendeben cargarcargar, y , y dóndedónde, , cuandocuando hay hay
memoriamemoria disponibledisponiblememoriamemoria disponibledisponible..–– AsignarAsignar y y liberarliberar espacioespacio de de memoriamemoria cuandocuando sea sea necesarionecesario..–– OfrecerOfrecer serviciosservicios parapara queque los los procesosprocesos puedanpuedan compartircompartir
memoriamemoria..
14/10/2009
22
Conceptos de sistemas operativosConceptos de sistemas operativos
GESTIÓN DE DISPOSITIVOS DE E/SGESTIÓN DE DISPOSITIVOS DE E/S
Teclados, monitores, impresoras, discos, ...Teclados, monitores, impresoras, discos, ...
Software de entrada salida dependiente del dispositivo Software de entrada salida dependiente del dispositivo (drivers)(drivers)
Software de E/S independiente del dispositivo (protección, Software de E/S independiente del dispositivo (protección, bufferingbuffering, esquema de nombrado, tamaño de bloque, ...), esquema de nombrado, tamaño de bloque, ...)
Conceptos de sistemas operativosConceptos de sistemas operativos
•• El El gestorgestor de E/S de E/S estáestá formadoformado porpor::–– Un Un sistemasistema global de global de almacenamientoalmacenamiento intermediointermedio en en memoriamemoria..–– ManejadoresManejadores genéricosgenéricos, , unouno porpor cadacada claseclase, de , de dispositivosdispositivos..–– ManejadoresManejadores específicosespecíficos parapara cadacada dispositivodispositivoManejadoresManejadores específicosespecíficos parapara cadacada dispositivodispositivo. .
•• AlmacenamientoAlmacenamiento secundariosecundario no no volátilvolátil en en dispositivosdispositivos rápidosrápidos de de E/S (discos) E/S (discos) comocomo respaldorespaldo de la de la memoriamemoria. .
•• El SO El SO tienetiene la la responsabilidadresponsabilidad de de gestionargestionar los los siguientessiguientes aspectosaspectosde la E/S y el de la E/S y el almacenamientoalmacenamiento secundariosecundario: : –– TraducirTraducir peticionespeticiones a a formatoformato de de manejadormanejador..
C iC i ii d /d / ii /d/d t l dt l d–– CopiarCopiar memoriamemoria de/a de/a memoriamemoria a/de a/de controladorcontrolador..–– ControlarControlar operacionesoperaciones porpor DMA.DMA.–– ControlarControlar dispositivosdispositivos de E/S de E/S serieserie: : tecladoteclado, , ratónratón, etc., etc.–– AsignaciónAsignación y y liberaciónliberación de de espacioespacio..–– PlanificaciónPlanificación de de accesosaccesos a los a los dispositivosdispositivos..
14/10/2009
23
Conceptos de sistemas operativosConceptos de sistemas operativos
GESTIÓN DEL SISTEMA DE FICHEROSGESTIÓN DEL SISTEMA DE FICHEROS
Estructura del sistema de ficherosEstructura del sistema de ficheros
Operaciones sobre ficherosOperaciones sobre ficheros
Nombres de ficherosNombres de ficheros
Descriptor de ficheroDescriptor de fichero
Tipos de ficherosTipos de ficheros
Conceptos de sistemas operativosConceptos de sistemas operativos
•• ArchivoArchivo:: conjuntoconjunto de de informacióninformación lógicamentelógicamente relacionadarelacionada y y definidadefinida porpor susu creadorcreador..
•• DirectorioDirectorio:: conjuntoconjunto de de identificadoresidentificadores lógicoslógicos de de archivosarchivos y y susurelaciónrelación con con identificadoresidentificadores internosinternos del SO. del SO.
•• ArchivosArchivos frecuentesfrecuentes: : programasprogramas ((fuentesfuentes y y ejecutablesejecutables) y ) y datosdatos..
•• El SO El SO tienetiene la la responsabilidadresponsabilidad de de gestionargestionar los los siguientessiguientesaspectosaspectos del del servicioservicio de de archivosarchivos::–– CreaciónCreación y y borradoborrado de de archivosarchivos y y directoriosdirectorios..–– PrimitivasPrimitivas parapara manipularmanipular archivosarchivos y y directoriosdirectorios..–– ProyectarProyectar los los ficherosficheros sobresobre almacenamientoalmacenamiento secundariosecundario..–– HacerHacer respaldorespaldo de de archivosarchivos sobresobre dispositivosdispositivos establesestables y no y no
volátilesvolátiles..
14/10/2009
24
Conceptos de sistemas operativosConceptos de sistemas operativosABSTRACCIÓN LÓGICA DEL SFABSTRACCIÓN LÓGICA DEL SF
PosiciónPosición
1
7
4
10
2
8
5
11
3
9
6
12
Archivo ABloques: 13
201
Visión lógica
13
25
19
16
28
22
14
26
20
17
29
23
15
27
21
18
30
24
Bloques de la Unidad de Disco
1831619
Visión física
Conceptos de sistemas operativosConceptos de sistemas operativos
Estructura: Estructura: Árbol.Árbol. Un directorio también es un ficheroUn directorio también es un fichero
14/10/2009
25
Conceptos de sistemas operativosConceptos de sistemas operativos
Operaciones sobre ficherosOperaciones sobre ficheros Crear, abrir, cerrar, leer, escribir, posicionar, borrar, ...Crear, abrir, cerrar, leer, escribir, posicionar, borrar, ...
Cada fichero tiene un nombreCada fichero tiene un nombreAbsoluto, desde el directorio raíz Absoluto, desde el directorio raíz ((root directoryroot directory))
/dacya/ssoo/grupoA/dacya/ssoo/grupoARelativo al directorio de trabajo Relativo al directorio de trabajo ((working directoryworking directory))
si wk = /dacya/ssoo,si wk = /dacya/ssoo,grupoAgrupoA
Existe una llamada para establecer el directorio de trabajoExiste una llamada para establecer el directorio de trabajo
Descriptor de fichero Descriptor de fichero ((file descriptorfile descriptor))Cuando se abre un fichero, el SO devuelve un identificadorCuando se abre un fichero, el SO devuelve un identificador
Conceptos de sistemas operativosConceptos de sistemas operativos
Tipos de ficherosTipos de ficheros
Ficheros ordinariosFicheros ordinarios
Ficheros especiales. Ficheros especiales. Los dispositivos de E/S se ven como Los dispositivos de E/S se ven como ficheros ordinarios:ficheros ordinarios:
Especial de bloques (discos /Especial de bloques (discos /devdev/hd01)/hd01) Especial de caracteres (impresora /Especial de caracteres (impresora /devdev//lptlpt))
PipesPipesUn Un pseudoficheropseudoficheroDos descriptores: para leer y para escribirDos descriptores: para leer y para escribirComunican procesosComunican procesos
Proceso AProceso A Proceso BProceso B
pipepipe
14/10/2009
26
Conceptos de sistemas operativosConceptos de sistemas operativos
SEGURIDAD Y PROTECCIÓNSEGURIDAD Y PROTECCIÓN
•• ProtecciónProtección: : controlarcontrolar accesosaccesos a los a los recursosrecursos de de usuariousuario yy sistemasistemausuariousuario y y sistemasistema..
–– DistinguirDistinguir entre entre usouso autorizadoautorizado y no y no autorizadoautorizado..–– EspecificarEspecificar los los controlescontroles de de accesoacceso a a llevarllevar a a cabocabo..–– ProporcionarProporcionar métodosmétodos de control de de control de accesoacceso..
•• SeguridadSeguridad:: protegerproteger al al sistemasistema de un de un usouso indebidoindebido..
–– AutenticarAutenticar a los a los usuariosusuarios..–– EvitarEvitar amenazasamenazas al al sistemasistema ((gusanosgusanos, virus, , virus, pirataspiratas, ,
fuegofuego, etc.), etc.)–– EvitarEvitar la la intercepciónintercepción de de comunicacionescomunicaciones: : cifradocifrado, , canalescanales
segurosseguros, etc., etc.
Conceptos de sistemas operativosConceptos de sistemas operativos
Shell: Shell: Intérprete de comandosIntérprete de comandos
No es parte del sistema operativoNo es parte del sistema operativoh h k h b hh h k h b h sh, csh, ksh, bash sh, csh, ksh, bash
Crea procesos para ejecutar comandosCrea procesos para ejecutar comandos Gestiona las redirecciones Gestiona las redirecciones
cat file1 file2 file3 | sort > /dev/lpcat file1 file2 file3 | sort > /dev/lpEntrada/Salida Entrada/Salida PipesPipes
Ejecución en backgroundEjecución en backgroundEjecución en backgroundEjecución en backgroundcat file1 file2 file3 | sort > /dev/lp &cat file1 file2 file3 | sort > /dev/lp &
Seguridad: Seguridad: Bits rwx de los ficherosBits rwx de los ficheros(propietario, grupo, otros)(propietario, grupo, otros) rwx rwx rwxrwx rwx rwx
14/10/2009
27
Conceptos de sistemas operativosConceptos de sistemas operativosACTIVACIÓN DEL SOACTIVACIÓN DEL SO
•• Fuentes de Fuentes de laslas peticionespeticiones::MandatosMandatos de losde los usuariosusuarios interpretadosinterpretados porpor el shellel shell–– MandatosMandatos de los de los usuariosusuarios interpretadosinterpretados porpor el shellel shell
–– LlamadasLlamadas al al sistemasistema emitidasemitidas porpor los los programasprogramas–– InterrupcionesInterrupciones producidasproducidas porpor los los periféricosperiféricos–– CondicionesCondiciones de de excepciónexcepción o error del hardwareo error del hardware
•• Forma de Forma de solicitarsolicitar los los serviciosservicios::–– PorPor llamadallamada CALL CALL problemaproblema de de seguridadseguridad
PorPor interrupcióninterrupción o trapo trap–– PorPor interrupcióninterrupción o trapo trap–– RutinaRutina de de bibliotecabiblioteca::
•• InstruccionesInstrucciones de de máquinamáquina queque preparanpreparan la la llamadallamada
Llamadas al sistemaLlamadas al sistema
Llamadas en POSIX: Son invocaciones de rutinas de biblioteca
soso
PROCESOS DE USUARIO YPROCESOS DE USUARIO YPETICIONES E SERVICIOPETICIONES E SERVICIO
INTERFAZINTERFAZDEL SODEL SO
soso
14/10/2009
28
Conceptos de sistemas operativosConceptos de sistemas operativos
FASES EN LA ACTIVACIÓN DEL SOFASES EN LA ACTIVACIÓN DEL SO la
eje
cuci
ón Proceso A
Sistemaoperativo
Se solicita el SOSalva el estado del proceso A
Realiza la función pedida
Ava
nza
Proceso B
ActivadorPlanificador
¿Qué es un sistema operativo? ¿Qué es un sistema operativo?
Tipos de sistema operativosTipos de sistema operativos
IntroduciónIntrodución
p pp p
Arranque del sistema operativo Arranque del sistema operativo
Estructura de los sistemas operativosEstructura de los sistemas operativos
Conceptos de los sistemas operativosConceptos de los sistemas operativos
Llamadas al sistemaLlamadas al sistema
14/10/2009
29
Llamadas al sistemaLlamadas al sistema
Interfaz entre aplicaciones y SO.Interfaz entre aplicaciones y SO. Generalmente son funciones en ensamblador.Generalmente son funciones en ensamblador. Actualmente en lenguajes de alto nivelActualmente en lenguajes de alto nivelActualmente en lenguajes de alto nivel.Actualmente en lenguajes de alto nivel.
Servicios típicos del sistema operativoServicios típicos del sistema operativo Gestión de procesosGestión de procesos Gestión de procesos ligeros (Gestión de procesos ligeros (threadsthreads)) Gestión de señales, temporizadoresGestión de señales, temporizadores Gestión de memoriaGestión de memoria Gestión de E/SGestión de E/S Gestión de ficheros y directoriosGestión de ficheros y directoriosyy
Ejemplos de llamadaEjemplos de llamada readread: permite leer datos de un fichero: permite leer datos de un fichero forkfork: permite crear un nuevo proces: permite crear un nuevo procesoo
Llamadas al sistemaLlamadas al sistema
•• Los Los serviciosservicios se se programanprograman mediantemediante sentenciassentencias de unde unlenguajelenguaje ((p.ep.e. C).. C).
•• EstasEstas sentenciassentencias son son comocomo llamadasllamadas a a funciónfunción
•• Se Se conviertenconvierten, , mediantemediante unauna rutinarutina de de bibliotecabiblioteca dede
sistemassistemas en un en un conjuntoconjunto de de instruccionesinstrucciones de de máquinamáquina quequeterminanterminan con con unauna instruccióninstrucción TRAPTRAP..
•• El El TRAPTRAP, , comocomo todatoda excepciónexcepción eses tratadatratada porpor el SOel SO
•• El SO El SO realizarealiza el el servicioservicio pedidopedido y y devuelvedevuelve un un valorvalor
•• EjemploEjemplo: : intint fork() {fork() {() {() {intint r;r;LOAD R8, FOR_SYSTEM_CALLLOAD R8, FOR_SYSTEM_CALLTRAPTRAPLOAD r, R9LOAD r, R9return r;return r;
}
14/10/2009
30
Llamadas al sistemaLlamadas al sistema
Aplicación de usuarioAplicación de usuario
ModoModousuariousuario
ModoModokernelkernel
forkfork()()
Interfaz de llamadas al sistemaInterfaz de llamadas al sistema
ImplementaciónImplementación: forkfork()()
ImplementaciónImplementaciónde la llamada de la llamada forkfork()()
..
..
..RTERTE
ii
:
Llamadas al sistemaLlamadas al sistemaEjemplo: count = read (fd, buffer, nbytes)
14/10/2009
31
Llamadas al sistemaLlamadas al sistema
Tres métodos genéricos para pasar parámetros a las Tres métodos genéricos para pasar parámetros a las llamadas al sistema:llamadas al sistema:llamadas al sistema:llamadas al sistema:
En registros.En registros.En una tabla de memoria, cuya dirección se pasa En una tabla de memoria, cuya dirección se pasa al SO en un registro.al SO en un registro.Poner los parámetros en la pila del programa y Poner los parámetros en la pila del programa y dejar que el SO los extraiga.dejar que el SO los extraiga.
Cada SO proporciona sus propias llamadas al sistema: Cada SO proporciona sus propias llamadas al sistema: Estándar POSIX en UNIX y LINUX.Estándar POSIX en UNIX y LINUX.Win32 en Windows NT.Win32 en Windows NT.
Llamadas al sistemaLlamadas al sistemaResumen
14/10/2009
32
Llamadas al sistemaLlamadas al sistema
Núcleo
POSIX
Programas de usuario
Usuarios
Sistemaoperativo
Varias API
Win 32
Shell 1 Shell 2
Gestión deprocesos
Gestión dememoria
Gestión de la E/S
Comunicac.y
sincroniz.
Seguridad y
protección
Gestión de archivos y directorios
Hardware
Llamadas al sistemaLlamadas al sistemaGestión de procesosGestión de procesos
pidpid = = forkfork()()Crea un proceso idéntico al padreCrea un proceso idéntico al padre
pidpid = = waitpidwaitpid((pidpid, &, &statlocstatloc, , optionsoptions))Espera la terminación de un hijoEspera la terminación de un hijo
s = s = killkill((pidpid, , signalsignal))Envía una señal a un procesoEnvía una señal a un proceso
s = s = execveexecve((namename, , argvargv, , environpenvironp))Reemplaza la imagen del proceso (Reemplaza la imagen del proceso (código+entornocódigo+entorno))
exitexit(status)(status)Termina la ejecución del proceso y devuelve el estadoTermina la ejecución del proceso y devuelve el estado
14/10/2009
33
Llamadas al sistemaLlamadas al sistemaGestión de ficherosGestión de ficheros
fdfd = open(= open(filefile, , howhow, …), …)Abre un fichero Abre un fichero comcom lectura, escritura o ambaslectura, escritura o ambas
s =s = closeclose((fdfd))s s closeclose((fdfd))Cierra un fichero abiertoCierra un fichero abierto
n = n = readread((fdfd, buffer, , buffer, nbytesnbytes))n = n = writewrite((fdfd, buffer, , buffer, nbytesnbytes))Lee (escribe) datos desde un fichero (buffer) a un buffer (fichero)Lee (escribe) datos desde un fichero (buffer) a un buffer (fichero)
position = position = lseeklseek((fdfd, offset, , offset, whencewhence))Mueve el puntero del ficheroMueve el puntero del fichero
s = s = statstat((namename, &, &bufbuf))Devuelve información acerca del estado del ficheroDevuelve información acerca del estado del fichero
s = s = chmodchmod((namename, , modemode))Cambia los bit de protección del ficheroCambia los bit de protección del fichero
Llamadas al sistemaLlamadas al sistemaGestión de directorios y ficherosGestión de directorios y ficheros
s = s = mkdirmkdir((namename, , modemode))Crea un nuevo directorioCrea un nuevo directorio
s =s = rmdirrmdir((namename))s = s = rmdirrmdir((namename))Borra un directorio vacíoBorra un directorio vacío
s = s = chdirchdir((dirnamedirname))Cambia el directorio de trabajoCambia el directorio de trabajo
s = link(name1, name2)s = link(name1, name2)Crea una nueva entrada, name2, apuntando a name1Crea una nueva entrada, name2, apuntando a name1
s =s = unlinkunlink((namename))s s unlinkunlink((namename))Borra una entrada de directorioBorra una entrada de directorio
s = s = mountmount((spsecialspsecial, , namename, , flagflag) ) Monta un sistema de ficherosMonta un sistema de ficheros
s = s = umountumount((spsecialspsecial))Desmonta un sistema de ficherosDesmonta un sistema de ficheros
14/10/2009
34
Llamadas al sistema. Ejemplo UnixLlamadas al sistema. Ejemplo Unix/* Programa A. Fichero – Fichero padre.c* Manda ejecutar el programa B* Lee caracteres del terminal y cada vez que detecta “salto de linea”* envia una señal al proceso B*/#include <stdio.h>#include <signal h>#include <signal.h>#include <unistd.h>#include <stdlib.h>
pid_t resp;char buf[1];
main() {resp = fork();if (resp == 0)
if (execlp("./hijo","hijo", NULL) == -1) {perror("exec"), exit(1);
}
while (read(0, buf, 1) == 1) {if (buf[0] == '\n') {
kill(resp, SIGUSR2);}
}}
Llamadas al sistema. Ejemplo UnixLlamadas al sistema. Ejemplo Unix/* Programa B. Fichero hijo.c* Crea un fichero y escribe en él* una línea por cada señal que recibe, hasta un máximo de 5*/#include <fcntl.h>#include <signal.h>#include <stdlib h>#include <stdlib.h>
int fd, n=5;
void proc(int arg) {n--;return;
}
int main() {signal(SIGUSR2, proc);if ((fd = open("fichero", O_CREAT|O_TRUNC|O_WRONLY)) == -1) {
perror("open"); exit(1);}
while (n!= 0) {pause();write(fd, "Linea\n", 7);
}return 0;
}
14/10/2009
35
Llamadas al sistemaLlamadas al sistemaArranque del ordenador en UnixArranque del ordenador en Unix
El HW lee el primer sector de la primera pista: El HW lee el primer sector de la primera pista:
((programa programa bootstrapbootstrap) y ) y lo ejecuta: lo ejecuta: cargar el S.O.cargar el S.O.
Inicializa Inicializa kernelkernel, GM, FS., GM, FS.
Cede control al programa Cede control al programa initinit..
initinit lee lee //etcetc//ttysttys (número de terminales).(número de terminales).
initinit crea un proceso hijo por cada terminal.crea un proceso hijo por cada terminal.
Los hijos ejecutan (Los hijos ejecutan (execexec) el programa ) el programa //binbin//loginlogin..
Esperan a que un usuario entre al sistema.Esperan a que un usuario entre al sistema.
//binbin//loginlogin ejecuta la ejecuta la shellshell correspondiente (en correspondiente (en //etcetc//passwdpasswd))
La La shellshell crea un hijo por cada comando.crea un hijo por cada comando.