introducción 2 [modo de compatibilidad]dsa-research.org/teresa/so/clases/introduccion_2.pdf ·...

35
14/10/2009 1 Chapter 1: Introduction Chapter 1: Introduction INGENIERÍA INFORMÁTICA SISTEMAS OPERATIVOS SISTEMAS OPERATIVOS M. Teresa Higuera Toledano M. Teresa Higuera Toledano Departamento de Arquitectura de Departamento de Arquitectura de Computadores y Automática Computadores y Automática Facultad de Informática Facultad de Informática Universidad Complutense de Madrid Universidad Complutense de Madrid Tema 1 Tema 1 Introducción Introducción

Upload: dothuan

Post on 02-Oct-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 2: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 3: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 4: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 5: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 6: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 7: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 8: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 9: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 10: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 11: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 12: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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.

Page 13: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 14: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 15: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 16: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 17: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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..............

Page 18: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 19: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 20: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 21: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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..

Page 22: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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..

Page 23: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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..

Page 24: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 25: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 26: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 27: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 28: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 29: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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;

}

Page 30: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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)

Page 31: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 32: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 33: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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

Page 34: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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;

}

Page 35: Introducción 2 [Modo de compatibilidad]dsa-research.org/teresa/SO/Clases/Introduccion_2.pdf · Linux (Red Hat,Linux (Red Hat, Debian, Caldera, ... así, el sistema queda corrompido

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.