Download Tema 1. Introducción
Document related concepts
Transcript
14/10/2009
INGENIERÍA
Chapter 1: INFORMÁTICA
Introduction
SISTEMAS OPERATIVOS
M. Teresa Higuera Toledano
Departamento de Arquitectura de
Computadores y Automática
Facultad de Informática
Universidad Complutense de Madrid
Tema 1
Introducción
1
14/10/2009
Introdución
¿Qué es un sistema operativo?
Tipos de sistema operati
operativos
os
Arranque del sistema operativo
Estructura de los sistemas operativos
Conceptos de los sistemas operativos
Llamadas al sistema
¿Qué es un sistema operativo?
Un programa que actua como intermediario entre el
usuario y el hardware del computador
computador..
Objectivos del sistema operativo:
•
•
Ejecutar programas y facilitar la solución de los problemas
del usuario
Hacer un uso conveniente del computador
Usar el computador de forma eficiente
Proporcionar una máquina virtual extendida
2
14/10/2009
¿Qué es un sistema operativo?
Usuario
1
Usuario
1
Usuario
1
Ensamblador
Compilador
Editor
Usuario
1
…
…
Bases de datos
PROGRAMAS DEL SISTEMA Y APLICACIONES
SISTEMA OPERATIVO
ARQUITECTURA
SUBYACENTE
¿Qué funciones realiza?
Gestor de recursos (UCP, memoria, ...)
•
•
•
•
Asignación
g
y recuperación
p
de recursos
Protección de los usuarios
Contabilidad/monitorización
Soporte de usuario
Máquina extendida (servicios)
•
•
•
•
Ejecución de programas (procesos)
Órdenes de E/S
Operaciones sobre archivos
Detección y tratamiento de errores
Interfaz de usuario
•
Shell
3
14/10/2009
¿Qué funciones realiza?
Funcionamiento del computador
•
•
Una o más CPUs, controladores de dispositivo conectados a
través de un bús común que proporciona acceso a la memoria
compartida
Ejecución concurrente de la de CPUs y de los dispositivos que
que compiten por los ciclos de memoria
CPU
Control
C
l
sonido
Control USB
adaptador
d
d
gráfico
MEMORIA
Evolución de los sistemas operativos
Primera generación 1945 - 1955
Tubos de vacío, tarjetas cableadas
Segunda generación 1955 - 1965
Transistores, sistemas batch
Tercera generación
1965 – 1980
Circuitos integrados y multiprogramación
Cuarta generación 1980 – hoy
Ordenadores personales
4
14/10/2009
Evolución de los sistemas operativos
Primeros sistemas batch (2ª
( generación)
g
)
Lleva las tarjetas al 1401
Lee tarjetas a la cinta
Monta la cinta en el 7094 que realiza el cálculo
Monta la cinta en el 1401 que imprime los resultados
Evolución de los sistemas operativos
TRABAJO 1
TRABAJO 2
PARTICIONES
DE
MEMORIA
TRABAJO 3
SISTEMA
OPERATIVO
Multiprogramación (3ª generación)
Simultaneous Peripheral Operation On Line
Tiempo compartido: MULTICS, UNIX
5
14/10/2009
Evolución de los sistemas operativos
Sistemas abiertos (4ª generación)
Disk Operating System
MicroSoft Disk Operating System (MS(MS-DOS)
Graphical User Interface
Windows 3.x, 95, 98, NT, 2000, Me, XP
Linux (Red Hat, Debian
Debian,, Caldera, ...)
Sistemas operativos de Red
Sistemas operativos distribuidos
Introdución
¿Qué es un sistema operativo?
Tipos de sistema operati
operativos
os
Arranque del sistema operativo
Estructura de los sistemas operativos
Conceptos de los sistemas operativos
Llamadas al sistema
6
14/10/2009
Tipos de sistemas operativos
Batch: ejecuta los procesos de usuario por “lotes”
Interactivo: ejecuta los procesos interactuando con
el usuario
Tiempo Real: ejecuta procesos de tiempo real
((responden
p
a eventos dentro de un cierto período
p
de
tiempo)
Distribuido: el SO se ejecuta en una red de
ordenadores pero el usuario opera como si el sistema
fuera uno solo.
Tipos de sistemas operativos
Sistemas operativos para mainframes
Batch, transacciones
transacciones,, tiempo compartido:
compartido: OS/390
Sistemas operativos para servidores
Servicios de impresión
impresión,, ficheros,
ficheros, web: Unix, Windows
2000, Linux
Sistemas operativos multiprocesador
Ordenadores paralelos
paralelos,, multicomputador,
multicomputador,
multiprocesador: Encore
multiprocesador:
Sistemas operativos para ordenadores personales
personales::
CPM,
C
MS
MSS-DOS,
OS Windows
Sistemas operativos de tiempo real
Hard realreal-time system, soft realreal-time system: RTEMS
Sistemas operativos empotrados
empotrados:: PalmOS
PalmOS,, Windows CE,
Androide
7
14/10/2009
Tipos de sistemas operativos
Nº procesos
1
Nº usuarios
1
más de 1
Monoproceso
Monousuario
Multiproceso
Monousuario
Multiproceso
Multiusuario
más de 1
Tipos de sistemas operativos
Sistemas operativos para sistemas paralelos
(muy
y acoplados)
p
CPU
CPU
CPU
CPU
RAM
8
14/10/2009
Tipos de sistemas operativos
Sistemas operativos para sistemas distribuidos
(poco
p
acoplados)
p
LAN
WAN
Tipos de sistemas operativos
Sistemas operativos de tiempo real
Control industrial
Misiles
Sistemas multimedia
Si un evento no se trata en el tiempo
especificado (muy pequeño)
¡EL SISTEMA FALLA!
Se requiere un sistema capaz de responder
dentro de un tiempo limitado
9
14/10/2009
Tipos de sistemas operativos
Sistemas de tiempo real
2 niveles de exigencia
TR RIGUROSO
(hard real time)
TR MODERADO
(soft real time)
Poca memoria secundaria
Mezcla de tareas muy distintas
Caché, ROM
No sirven para control industrial
S.O. muy simple
Útiles para:
Multimedia
Realidad virtual
Introdución
¿Qué es un sistema operativo?
Tipos
p de sistema operativos
p
Arranque del sistema operativo
Estructura de los sistemas operativos
Conceptos de los sistemas operativos
Llamadas al sistema
10
14/10/2009
Arranque del computador
• 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
– Trae a memoria el boot del SO
Unidad de Memoria
Dirección
0
2.047
Unidad de Memoria
Celdas
Dirección
Celdas
0
Zona
ROM
1.046.528
1.048.575
1.048.575
Zona
ROM
• En el caso del PC la ROM contiene, además, sw de E/S (BIOS)
Arranque del Sistema operativo
•
El SO está almacenado en el disco
Programa cargador
(identificador)
Disco
Sistema Operativo
11
14/10/2009
Arranque del sistema operativo
• 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
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 de login (uno por terminal)
– Tras la autenticación, el proceso login se convierte en shell
Parada del sistema
• Parada del sistema: Copia a disco de la información necesaria
mantenida en memoria por razones de eficiencia; si no se efectúa
así,, e
as
el s
sistema
ste a queda co
corrompido
o p do y e
en e
el p
próximo
ó
oa
arranque
a que debe
ser “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.
12
14/10/2009
Capítulo 1: Introdución
¿Qué es un sistema operativo?
Tipos
p de sistema operativos
p
Arranque del sistema operativo
Estructura de los sistema operativos
Conceptos de los sistemas operativos
Llamadas al sistema
Niveles de los sistemas operativos
HW
13
14/10/2009
Estructuras de los SO
Sistema monolítico: OS
OS--360, MSMS-DOS, UNIX, LINUX
PROCEDIEMIENTO
PRINCIPAL
PROCEDIEMIENTOS
Llamadas al sistema
DE SERVICIO
PROCEDIEMIENTOS
DE UTILIDAD
Estructuras de los SO
Sistemas por capas: OS/2, Minix
init
Proceso de
usuario
Proceso de Proceso de
usuario
usuario
Gestor de memoria
Kernel
Tarea
de disco
Tarea
de reloj
…
Gestor de ficheros
Tarea
sistema
Tarea
de tty
…
GESTIÓN
Ó DE PROCESOS
14
14/10/2009
Estructuras de los SO
Máquinas virtuales: VM/370, VMWare
VMWare,, KVM
Máquinas virtuales 370
Instrucciones
de E/S
Trap
Llamadas
al sistema
CMS
CMS
CMS
Trap
VM/370
Hardware subyacente
y
del 370
Estructuras de los SO
El modelo cliente
cliente--servidor: Mac OS X
Proceso
Cliente
Proceso
Servidor
Servidor …
Cliente de procesos de terminal
Microkernel
Servidor
Servidor
de fichero de memoria
Modo
usuario
Modo
kernel
15
14/10/2009
Estructuras de los SO
El modelo cliente
cliente--servidor en un sistema distribuido:
Amoeba,
Amoeba,
Middlewere:: Java
Middlewere
Java--RMI, CORBA, DCE, DCOM
Máquina 1
Máquina 2
Máquina 3
Máquina 4
Máquina 5
Proceso
Cliente
Servidor
de procesos
Servidor
de terminal
Servidor
de fichero
Servidor
de memoria
kernel
kernel
Mensaje desde el
cliente al servidor
kernel
kernel
kernel
RED
Capítulo 1: Introdución
¿Qué es un sistema operativo?
Tipos
p de sistema operativos
p
Arranque del sistema operativo
Estructura de los sistemas operativos
Conceptos de los sistemas operativos
Llamadas al sistema
16
14/10/2009
Conceptos de sistemas operativos
GESTIÓN DE PROCESOS
Proceso: Un programa en ejecución
Espacio de direccionamiento
Contexto (entrada a la tabla de procesos)
Operaciones asociadas a un proceso
Identificadores asociadas a un proceso
Conceptos de sistemas operativos
Espacio de direccionamiento
Programa ejecutable (texto)
Datos
Pila
Contexto (entrada a la tabla de procesos)
Registros de la CPU
PC, SP, PSW.
Tabla de ficheros abiertos
Mapa de memoria
.......
17
14/10/2009
Conceptos de sistemas operativos
Los tres segmentos de un proceso: texto, datos, pila
FFFF
Pila
brk (newDirection)
Datos
Texto
0000
Conceptos de sistemas operativos
Operaciones asociadas a un proceso
Crear un proceso (relación padrepadre-hijo)
Terminar un proceso
Comunicación y sincronización entre procesos
Pedir/ liberar memoria
Esperar a que termine uno de los hijos
Cargar una imagen de texto
Establecer/tratar/enviar señales
Identificadores asociados a un proceso
uid
uid,, identificador del propietario del proceso
pid
pid,, identificador del propio proceso
gid
gid,, identificador del grupo al que pertenece el proceso
18
14/10/2009
Conceptos de sistemas operativos
COMUNICACIÓN Y SINCRONIZACIÓN ENTRE
PROCESOS
Proceso
de Usuario
Proceso
de Usuario
Proceso
de Usuario
Proceso
de Usuario
SO
SO
SO
UN COMPUTADOR
DOS COMPUTADORES
Conceptos de sistemas operativos
• Servicios de comunicación:
comunicación:
–
–
–
–
Crear el mecanismo de comunicación
Enviar datos a un proceso
Recibir datos de un proceso
Destruir el servicio de comunicación
• Servicios de sincronización:
sincronización:
–
–
–
–
Crear el mecanismo de sincronización
Bloquear un proceso hasta que ocurra un evento
Despertar a un proceso bloqueado
Destruir el mecanismo de sincronización
19
14/10/2009
Conceptos de sistemas operativos
• Comunicación síncrona
síncrona::
– Los dos procesos han de ejecutar los servicios de
comunicación al mismo tiempo
Proceso B
Avanza la ejecución
Proceso A
Proceso B
Proceso A
enviar
Espera
recibir
recibir
El proceso A espera al B
enviar
Espera
El proceso B espera al A
• Comunicación asíncrona
– Los dos procesos no tiene que ejecutar los servicios de
comunicación al mismo tiempo
Conceptos de sistemas operativos
INTERBLOQUEOS: Se producen por la competencia
entre procesos por conseguir los recursos del
sistema
20
14/10/2009
Conceptos de sistemas operativos
GESTIÓN DE MEMORIA
Asignación/liberación de memoria
Mecanismos de protección
Gestión de huecos y compactación
Gestión de la memoria virtual (paginación, segmentación)
Conceptos de sistemas operativos
• Memoria:
Memoria: vector enorme de palabras o bytes, cada uno con su
propia dirección.
dirección.
– Compartido por UCP y dispositivos E/S.
– Volátil:
V látil: pierde
Volátil
i d su contenido
t id sii ell sistema
i t
f ll .
falla.
falla
• El SO tiene la responsabilidad de gestionar los siguientes
aspectos de la memoria
memoria::
– Mantener un mapa de las partes de memoria en uso y saber
quién las está usando
usando..
– Decidir qué procesos se deben cargar,
cargar, y dónde,
dónde, cuando hay
memoria disponible
disponible..
– Asignar y liberar espacio de memoria cuando sea necesario
necesario..
– Ofrecer servicios para que los procesos puedan compartir
memoria..
memoria
21
14/10/2009
Conceptos de sistemas operativos
GESTIÓN DE DISPOSITIVOS DE E/S
Teclados, monitores, impresoras, discos, ...
Software de entrada salida dependiente del dispositivo
(drivers)
Software de E/S independiente del dispositivo (protección,
buffering,, esquema de nombrado, tamaño de bloque, ...)
buffering
Conceptos de sistemas operativos
• El gestor de E/S está formado por
por::
– Un sistema global de almacenamiento intermedio en memoria
memoria..
– Manejadores genéricos
genéricos,, uno por cada clase
clase,, de dispositivos.
dispositivos.
– Manejadores específicos para cada dispositivo
dispositivo..
• Almacenamiento secundario no volátil en dispositivos rápidos de
E/S (discos) como respaldo de la memoria
memoria..
• El SO tiene la responsabilidad de gestionar los siguientes aspectos
de la E/S y el almacenamiento secundario:
secundario:
– Traducir peticiones a formato de manejador
manejador..
– Copiar
C i memoria
i de/a
d / memoria
i a/de
/d controlador
controlador.
t l d .
– Controlar operaciones por DMA.
– Controlar dispositivos de E/S serie:
serie: teclado
teclado,, ratón,
ratón, etc.
– Asignación y liberación de espacio
espacio..
– Planificación de accesos a los dispositivos.
dispositivos.
22
14/10/2009
Conceptos de sistemas operativos
GESTIÓN DEL SISTEMA DE FICHEROS
Estructura del sistema de ficheros
Operaciones sobre ficheros
Nombres de ficheros
Descriptor de fichero
Tipos de ficheros
Conceptos de sistemas operativos
• Archivo:
Archivo: conjunto de información lógicamente relacionada y
definida por su creador
creador..
• Directorio:
Directorio: conjunto de identificadores lógicos de archivos y su
relación con identificadores internos del SO.
• Archivos frecuentes:
frecuentes: programas (fuentes y ejecutables)
ejecutables) y datos
datos..
• El SO tiene la responsabilidad de gestionar los siguientes
aspectos del servicio de archivos
archivos::
– Creación y borrado de archivos y directorios.
directorios.
– Primitivas para manipular archivos y directorios.
directorios.
– Proyectar los ficheros sobre almacenamiento secundario.
secundario.
– Hacer respaldo de archivos sobre dispositivos estables y no
volátiles..
volátiles
23
14/10/2009
Conceptos de sistemas operativos
ABSTRACCIÓN LÓGICA DEL SF
Posición
Visión lógica
Archivo A
Bloques: 13
20
1
8
3
16
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Bloques de la Unidad de Disco
Visión física
Conceptos de sistemas operativos
Estructura: Árbol. Un directorio también es un fichero
24
14/10/2009
Conceptos de sistemas operativos
Operaciones sobre ficheros
Crear, abrir, cerrar, leer, escribir, posicionar, borrar, ...
Cada fichero tiene un nombre
Absoluto, desde el directorio raíz (root directory)
directory)
/dacya/ssoo/grupoA
Relativo al directorio de trabajo (working directory)
directory)
si wk = /dacya/ssoo,
grupoA
Existe una llamada para establecer el directorio de trabajo
Descriptor de fichero (file descriptor)
descriptor)
Cuando se abre un fichero, el SO devuelve un identificador
Conceptos de sistemas operativos
Tipos de ficheros
Ficheros ordinarios
Ficheros especiales. Los dispositivos de E/S se ven como
ficheros ordinarios:
Especial de bloques (discos /dev
/dev/hd01)
/hd01)
Especial de caracteres (impresora /dev
/dev//lpt)
lpt)
Pipes
Un pseudofichero
Dos descriptores: para leer y para escribir
Comunican procesos
Proceso A
Proceso B
pipe
25
14/10/2009
Conceptos de sistemas operativos
SEGURIDAD Y PROTECCIÓN
• Protección:
Protección: controlar accesos a los recursos de
usuario y sistema
sistema..
– Distinguir entre uso autorizado y no autorizado.
autorizado.
– Especificar los controles de acceso a llevar a cabo
cabo..
– Proporcionar métodos de control de acceso
acceso..
• Seguridad
Seguridad:: proteger al sistema de un uso indebido.
indebido.
– Autenticar a los usuarios.
usuarios.
– Evitar amenazas al sistema (gusanos
gusanos,, virus, piratas,
piratas,
fuego,, etc.)
fuego
– Evitar la intercepción de comunicaciones
comunicaciones:: cifrado
cifrado,, canales
seguros,, etc.
seguros
Conceptos de sistemas operativos
Shell: Intérprete de comandos
No es parte del sistema operativo
sh,
h csh,
h ksh,
k h bash
b h
Crea procesos para ejecutar comandos
Gestiona las redirecciones
cat file1 file2 file3 | sort > /dev/lp
Entrada/Salida
Pipes
Ejecución en background
cat file1 file2 file3 | sort > /dev/lp &
Seguridad: Bits rwx de los ficheros
(propietario, grupo, otros) rwx rwx rwx
26
14/10/2009
Conceptos de sistemas operativos
ACTIVACIÓN DEL SO
•
Fuentes de las peticiones
peticiones::
–
–
–
–
Mandatos de los usuarios interpretados por el shell
Llamadas al sistema emitidas por los programas
Interrupciones producidas por los periféricos
Condiciones de excepción o error del hardware
• Forma de solicitar los servicios
servicios::
– Por llamada CALL problema de seguridad
– Por interrupción o trap
– Rutina de biblioteca
biblioteca::
• Instrucciones de máquina que preparan la llamada
Llamadas al sistema
Llamadas en POSIX: Son invocaciones de rutinas de biblioteca
PROCESOS DE USUARIO Y
PETICIONES E SERVICIO
INTERFAZ
DEL SO
so
27
14/10/2009
Conceptos de sistemas operativos
Avanza la ejecución
FASES EN LA ACTIVACIÓN DEL SO
Proceso A
Se solicita el SO
Salva el estado del proceso A
Sistema
operativo
Realiza la función pedida
Planificador
Activador
Proceso B
Introdución
¿Qué es un sistema operativo?
Tipos
p de sistema operativos
p
Arranque del sistema operativo
Estructura de los sistemas operativos
Conceptos de los sistemas operativos
Llamadas al sistema
28
14/10/2009
Llamadas al sistema
Interfaz entre aplicaciones y SO.
Generalmente son funciones en ensamblador.
nivel
Actualmente en lenguajes de alto nivel.
Servicios típicos del sistema operativo
Gestión de procesos
Gestión de procesos ligeros (threads
(threads))
Gestión de señales, temporizadores
Gestión de memoria
Gestión de E/S
Gestión de ficheros y directorios
Ejemplos de llamada
read
read:: permite leer datos de un fichero
fork
fork:: permite crear un nuevo proceso
Llamadas al sistema
• Los servicios se programan mediante sentencias de un
lenguaje (p.e
p.e.. C).
• Estas sentencias son como llamadas a función
• Se convierten,
convierten, mediante una rutina de biblioteca de
sistemas en un conjunto de instrucciones de máquina que
terminan con una instrucción TRAP
TRAP..
• El TRAP
TRAP,, como toda excepción es tratada por el SO
• El SO realiza el servicio pedido y devuelve un valor
• Ejemplo
Ejemplo::
int fork()
() {
int r;
LOAD R8, FOR_SYSTEM_CALL
TRAP
LOAD r, R9
return r;
}
29
14/10/2009
Llamadas al sistema
Aplicación de usuario
fork()
fork
()
Modo
usuario
Modo
kernel
Interfaz de llamadas al sistema
:
i
:
fork()
fork
()
Implementación
de la llamada
fork()
fork
()
.
.
.
RTE
Llamadas al sistema
Ejemplo:
count = read (fd, buffer, nbytes)
30
14/10/2009
Llamadas al sistema
Tres métodos genéricos para pasar parámetros a las
llamadas al sistema:
En registros.
En una tabla de memoria, cuya dirección se pasa
al SO en un registro.
Poner los parámetros en la pila del programa y
dejar que el SO los extraiga.
Cada SO proporciona sus propias llamadas al sistema:
Estándar POSIX en UNIX y LINUX.
Win32 en Windows NT.
Llamadas al sistema
Resumen
31
14/10/2009
Llamadas al sistema
Usuarios
Programas de usuario
Shell 1
Shell 2
POSIX
Win 32
Gestión de Seguridad Comunicac.
Gestión de Gestión de Gestión de
y
y
archivos y
procesos memoria
la E/S
directorios protección sincroniz.
Varias API
Sistema
operativo
Núcleo
Hardware
Llamadas al sistema
Gestión de procesos
pid = fork
fork()
()
Crea un proceso idéntico al padre
pid = waitpid
waitpid((pid,
pid, &
&statloc
statloc,, options)
options)
Espera la terminación de un hijo
s = kill(
kill(pid,
pid, signal)
signal)
Envía una señal a un proceso
s = execve(
execve(name,
name, argv
argv,, environp
environp))
Reemplaza la imagen del proceso (código+entorno
(código+entorno))
exit(status)
exit(status)
Termina la ejecución del proceso y devuelve el estado
32
14/10/2009
Llamadas al sistema
Gestión de ficheros
fd = open(file
open(file,, how
how,, …)
Abre un fichero com lectura, escritura o ambas
s = close
close((fd
fd))
Cierra un fichero abierto
n = read(
read(fd
fd,, buffer, nbytes)
nbytes)
n = write
write((fd
fd,, buffer, nbytes)
nbytes)
Lee (escribe) datos desde un fichero (buffer) a un buffer (fichero)
position = lseek(
lseek(fd
fd,, offset, whence)
whence)
Mueve el puntero del fichero
s = stat
stat((name,
name, &buf
&buf))
Devuelve información acerca del estado del fichero
s = chmod
chmod((name,
name, mode
mode))
Cambia los bit de protección del fichero
Llamadas al sistema
Gestión de directorios y ficheros
s = mkdir
mkdir((name,
name, mode
mode))
Crea un nuevo directorio
s = rmdir
rmdir((name
name))
Borra un directorio vacío
s = chdir
chdir((dirname)
dirname)
Cambia el directorio de trabajo
s = link(name1, name2)
Crea una nueva entrada, name2, apuntando a name1
s = unlink
unlink((name
name))
Borra una entrada de directorio
s = mount
mount((spsecial,
spsecial, name
name,, flag
flag))
Monta un sistema de ficheros
s = umount
umount((spsecial)
spsecial)
Desmonta un sistema de ficheros
33
14/10/2009
Llamadas 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>
<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 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
<stdlib.h>
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;
}
34
14/10/2009
Llamadas al sistema
Arranque del ordenador en Unix
El HW lee el primer sector de la primera pista:
(programa bootstrap)
bootstrap) y lo ejecuta: cargar el S.O.
Inicializa kernel,
kernel, GM, FS.
Cede control al programa init
init..
init lee /etc/
etc/ttys (número de terminales).
init crea un proceso hijo por cada terminal.
Los hijos ejecutan (exec
(exec)) el programa /bin
bin//login.
login.
Esperan a que un usuario entre al sistema.
/bin
bin//login ejecuta la shell correspondiente (en /etc/
etc/passwd)
passwd)
La shell crea un hijo por cada comando.
35