Sistemas Operativos Fis. Héctor E. Medellín Anaya.

26
Sistemas Operativos Fis. Héctor E. Medellín Anaya

Transcript of Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Page 1: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Sistemas Operativos

Fis. Héctor E. Medellín Anaya

Page 2: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Objetivos• Analizar el concepto de proceso y su manejo por el

sistema operativo.• Revisar los problemas clásicos de la comunicación

de procesos.• Conocer los aspectos fundamentales del software

de entrada y salida.• Analizar los algoritmos de manejo de memoria.• Conocer los aspectos fundamentales del sistema de

archivos de algunos sistemas operativos actuales.• Analizar, utilizar y configurar algunos sistemas

operativos.

Page 3: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Bibliografía

• Andrew S. Tanenbaum, Sistemas Operativos, diseño e implementación. Prentice Hall, 1988

• Stuart E. Madnick y John J. Donovan. Sistemas Operativos. Ed. Diana

• Rachel Morgan y Henry McGilton. Introducción al UNIX Sistema V. Mc. Graw Hill

Page 4: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Reseña históricaPrimera generación (1945-1955):

Computadoras de tubos de vacío, programación por tarjetas perforadas.

Segunda generación (1955-1965):

Computadoras de transistores, sistemas por lotes

Page 5: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Tercera generación (1965-1980)

Circuitos integrados, multiprogramación, sistema 360 (OS/360 en la 7040 de IBM), petición de trabajos, manejo de cola de impresión, Simultaneous Peripherial Operation On Line (Splooling), tiempo compartido (CTSS) MIT 1962. MULTICS (Multiplexed Information and Computing Service).

DEC PDP-1 en 1961, 4kB, $120,000 PDP-11

Brian Kernighan escribió UNICS (Uniplexed Information and Computing Service) deribó en UNIX, en Bell Laboratories, Dennis Ritchy escribió C para escribir UNIX.

Cuarta generación (1980-1990)

MS-DOS, UNIX para 68000, sistemas de red y sistemas distribuidos. MINIX es un UNIX gratis, derivó en LINUX.

Page 6: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Definición

Puede considerarse al sistema operativo como el más fundamental de todos los programas.

Controla todos los recursos del sistema de cómputo y ofrece la base sobre la cual pueden escribirse los programas de aplicación.

El sistema operativo es una capa de software que está sobre la parte superior del hardware descubierto.

De esta manera se manejan todas las partes del sistema y se presentar al usuario una interfaz o máquina virtual que es más fácil de entender y programar.

Page 7: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Niveles de software en un sistema

Dispositivos físicos

Microprogramación

Lenguaje de máquina

Sistema operativo

Sistemabancario

Juegos devideo

Compiladores EditoresIntérprete

de comandos

Programas de aplicación

Programas delsistema

Hardware

en líneas aéreasReservación

Page 8: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

El sistema operativo como una máquina ampliada

La función del sistema operativo es la de presentar al usuario con el equivalente de una máquina ampliada o máquina virtual que sea más fácil de programar que el hardware implícito.

El sistema operativo como un manejador de recursos

La tarea principal del sistema operativo es llevar el control de quién utiliza cuál recurso, conceder requisiciones de recursos, explicar el uso e interceder en requisiciones conflictivas de diferentes programas y usuarios.

La interfaz entre el sistema operativo y los programas de usuario se define por medio del conjunto de "instrucciones extendidas" que el sistema operativo proporciona, estas se conocen como llamadas al sistema.

Page 9: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

ProcesosUn proceso es un programa en ejecución. Consta del programa ejecutable, los datos y la pila del programa, su contador de programa, apuntador de pila y otros registros, así como de toda la información que se necesita para ejecutar el programa.

En muchos sistemas operativos, toda la información referente a cada proceso se almacena en una tabla del sistema operativo llamada tabla de procesos, la cual es un arreglo (o lista enlazada) de estructuras, una para cada proceso en existencia corriente.

Por lo tanto un proceso consta de su espacio de direcciones, generalmente llamada imagen del núcleo y su registro de la tabla de procesos, que contiene sus registros entre otras cosas.

Page 10: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Un proceso puede crear uno o más procesos diferentes (conocidos como procesos hijos) y estos a su vez generan nuevos procesos hijos, se llega rápidamente a una estructura de árbol.

A

B C

D E F

Page 11: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Archivos

Un archivo es un bloque de información que generalmente reside en disco. El directorio es una forma de guardar archivos, éste tiene una estructura de árbol.

Directorio raíz

Alumnos Facultad

Juan María LuisProf. Peréz

Prof. Gómez Prof. López

Cursos Examenes

Archivos

Page 12: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Un concepto importante en los archivos es el de archivo especial, este permite manejar los dispositivos como si fueran archivos. Los archivos especiales se dividen en dos tipos, archivos especiales de bloque y archivos especiales de caracteres. los archivos especiales de bloque manejan dispositivos en los que las transferencias se hacen en bloque al azar, como los discos. Los archivos especiales de caracteres modelan dispositivos seriales como impresoras de línea, interfaces de red, etc.

El dispositivo estándar de entrada se reconoce con el descriptor de archivo 0 y el dispositivo estándar de salida por el descriptor de archivo 1. El descriptor de archivo 2 se refiere al dispositivo error estándar.

Page 13: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Se definen dos números, el número de dispositivo mayor y el número de dispositivo menor, el primero se refiere al tipo de dispositivo (disco, terminal, impresora, etc.) y el segundo a cual de esos de dispositivos se refiere. Los número de dispositivo pueden observarse al listar /dev.

Otro archivo especial es la tubería (pipe), este es un pseudo archivo que se usa para conectar dos proceso, cuando un proceso A desea enviar datos a otro proceso B, aquél escribe en la tubería. El proceso B puede leer los datos al leer la tubería.

A B

ProcesoTubería

Proceso

Page 14: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

El intérprete de comandosEl intérprete de comandos llamado shell (concha) no es parte del sistema operativo, pero hace un uso intenso de las llamadas al sistema.

Cuando un usuario entra al sistema, se inicia un shell.

Una vez activado el shell espera a que el usuario emita un comando.

Cuando se emite un comando el shell crea un proceso derivado y espera a que este termine.

Page 15: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

LLAMADAS AL SISTEMA La llamada fork produce una copia idéntica del proceso padre, el valor que genera es cero en el hijo y pid en el padre.

while (TRUE) { /* repetir por siempre */

/* leer la entrada desde la terminal */

read_command(command, parameters);

if (fork() != 0){/* ramificar el proceso hijo */

wait(&status);/*código padre */

}else {

execve(command, parameters, 0);/* código hijo */

}

}

Page 16: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Pila

Interespacio

Datos

Texto

Dirección (hex)

FFFF

0000

Los procesos tienen tres segmentos: texto, datos y pila. En este ejemplo, Los tres están en el espacio de dirección, pero también se soportan espacios para datos e instrucciones separados.

Page 17: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Llamadas al sistema para señalación

(1) SIGHUP El modem ha detectado una conexión telefónica rota

2 SIGINT Se ha oprimido la llave DEL en el teclado

3* SIGQUIT Señal de renuncia del teclado

(4)* SIGILL Instrucción ilegal

(5)* SIGTRAP Trampa de seguimiento

(6)* SIGIOT Instrucción IOT

(7)* SIGEMT Instrucción EMT

(8)* SIGFPE Desbordamiento/insuficiencia de punto flotante

9 SIGKILLEliminación

(10)* SIGBUS Error de bus

(11)* SIGSEGV Violación de la segmentación

(12)* SIGSYS Argumento erróneo para la llamada al sistema

13 SIGPIPE Escritura en tubería sin lector

14 SIGALRM Alarma

15 SIGTERM Señal de terminación generada por el software

16 no asignado

Page 18: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Estructura para STAT y FSTAT:

struct stat {

short st_dev; /* dispositivo a donde pertenece el nodo i */

unsigned short st_ino; /* número de nodo i */

unsigned short st_node; /* palabra de nodo */

short st_nlink; /* número de enlaces */

short st_uid; /* id del usuario */

short st_gid; /* id del grupo */

short st_rdev;/* dispositivo mayor/menor de archivos esp. */

long st_size; /* tamaño del archivo */

long st_atime; /* igual que st_mtime */

long st_mtime; /* hora de la última modificación */

long st_ctime; /* igual que st_mtime */

};

Page 19: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

pipeline(process1, process2)

char *process1, *process2; /* apuntadores a los nombres del programa */

{

int fd[2];

  pipe(&fd[0]); /* crea una tubería */

if (fork != 0) { /* El proceso padre ejecuta estas proposiciones */

close(fd[0]);/* el proceso 1 no necesita leer de la tubería */

close(STD_OUTPUT);/* prepárese para la nueva salida estándar */

dup(fd[1]); /* fijar la salida estándar en fd[1] */

close(fd[1]); /* la tubería ya no se necesita */

execl(process1, process1,0);

} else {/* El proceso hijo ejecuta estas proposiciones */

close(fd[1]); /* el proceso 2 no necesita escribir de la tubería */

close(STD_INPUT); /* prepárese para la nueva entrada estándar */

dup(fd[0]); /* fijar la salida estándar en fd[0] */

close(fd[0]); /* la tubería ya no se necesita */

execl(process2, process2,0);

}

}

Page 20: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

struct sgttyb {

char sg_ispeed;/* velocidad de entrada (no se usa ahora) */

char sg_ospeed;/* velocidad de salida (no se usa ahora) */

char sg_erase; /* borrar carácter */

char sg_kill; /* eliminar carácter */

int sg_flag; /* indicaciones de modo */

};

 /* campos en sg_flags. */

#define XTABS 0006000/* ocacionar la expansión tabular */

#define RAW 0000040/* actvar el modo no elaborado */

#define CRMOD 0000020/* hacer el mapa lf igual a cr + lf */

#define ECHO 0000010/* activar el eco de la entrada tecleada */

#define CBREAK 0000002 /* activar el modo cbreak */

#define COOKED0000000/* ni CBREAK ni RAW */

 

#define TIOCGETP (('t'<<8) | 8)

#define TIOCSETP (('t'<<8) | 9)

Page 21: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

/usr/ast /usr/jim

16 correo81 juegos40 prueba

31 bin70 memo59 f.c38 prog1 70 nota

(a)

/usr/ast /usr/jim

16 correo81 juegos40 prueba

31 bin70 memo59 f.c38 prog1

(b)

(a) Dos directorios antes de enlazar /usr/jim/memo al directorio de ast. (b) Los mismos directorios después del enlace.

Page 22: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Mecanismo de llamada al sistema

Programa del usuario 2

Programa del usuario 3Llamada a kernel

Procedimientode servicio

Tabla de despacho

Los programas delusuario corren enmodo de usuario

El sistemaoperativocorre enmodo kernel

12

3

4

Memoria principal

Page 23: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Sistema monolítico

Procedimiento central

Procedimientos de servicio

Procedimientos de uso general

Page 24: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Máquina virtual

370 virtuales

Instrucciones de E/S aquí

Trampa aquí

CMS CMS CMS

VM/370

Hardware al descubierto del 370

Llamada al sistema aquí

Trampa aquí

Page 25: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Sistema cliente-servidor

Proceso delcliente

Servidor delproceso

Servidor dearchivo

Servidor dememoria

Proceso delcliente

Servidor dela terminal

Modo deusuario

Modo kernelKernel

El cliente obtiene servicio enviando mensajesa los procesos servidores

Page 26: Sistemas Operativos Fis. Héctor E. Medellín Anaya.

Modelo del cliente servidor en un sistema distribuido

Máquina 1

Cliente

Kernel

Servidor de

Máquina 2 Máquina 3 Máquina 4

archivoServidor de Servidor de

Kernel Kernel Kernel

Mensaje del cliente al servidor

Red

procesos la terminal