intro - sistemas operativos
DESCRIPTION
Intro - Sistemas OperativosTRANSCRIPT
![Page 1: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/1.jpg)
1
Introducción
Capítulo 1
1.1 ¿Qué es un sistema operativo?1.2 Evolución de los sistemas operativos1.3 Tipos de sistemas operativos1.4 Recordando aspectos hardware1.5 Conceptos de sistemas operativos1.6 Llamadas al sistema1.7 Estructura de los sistemas operativos
![Page 2: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/2.jpg)
2
Introducción
• Un ordenador consiste de– hardware
– Programas del sistema
– Programas de aplicación
Ruta de datosALURegistrosCPU
Acceso aperiféricos
![Page 3: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/3.jpg)
3
• Es una máquina extendida– Esconde los detalles del hardware
– Presenta una máquina virtual:
instrucciones del
lenguaje máquina
– Presenta abstracciones: fichero, proceso, I/O, memoria
Por ejemplo: lectura de un fichero (Minix)
¿Qué es un sistema operativo? (1)
+ llamadas al sistema
![Page 4: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/4.jpg)
4
¿Qué es un sistema operativo? (2)
![Page 5: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/5.jpg)
5
¿Qué es un sistema operativo? (3)/* puertos de E/S utilizados por la tarea del disquete */#define DOR 0x3F2 /* bits de control del motor */#define FDC_STATUS 0x3F4 /* registro de estado controlador */#define FDC_DATA 0x3F5 /* registro de datos del controlador */#define DMA_ADDR 0x004 /* puerto 16 bits inferiores dir DMA */#define DMA_TOP 0x081 /* puerto 4 bits superiores dir DMA */#define DMA_COUNT 0x005 /* puerto para cuenta de DMA */#define DMA_M2 0x00C /* puerto de estado de DMA */#define DMA_M1 0x00B /* puerto de estado de DMA */#define DMA_INIT 0x00A /* puerto de inicialización de DMA *//* bytes de comandos para el controlador de disquete */#define FDC_SEEK 0x0F /* comando de búsqueda a la unidad */#define FDC_READ 0xE6 /* comando de lectura a la unidad */#define FDC_WRITE 0xC5 /* comando de escritura a la unidad */#define FDC_RECALIBRATE 0x07 /* vete al cilindro 0 *//* códigos de error */#define ERR_SEEK -1 /* error en búsqueda */#define ERR_TRANSFER -2 /* error en transferencia */#define ERR_STATUS -3 /* error al obtener el estado */#define ERR_RECALIBRATE -4 /* error al recalibrar */#define ERR_WR_PROTECT -5 /* disquete protegido contra escritura */#define ERR_DRIVE -6 /* algo va mal con la unidad */
![Page 6: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/6.jpg)
6
¿Qué es un sistema operativo? (4)
• Es un gestor de recursos– Memoria, procesador, discos, impresoras, …– Dispositivos no compartidos (impresora)– Protección de memoria– ¿Quién utiliza qué recurso?– Multiplexación de recursos en tiempo y espacio
![Page 7: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/7.jpg)
7
Evolución sistemas operativos (1)
• 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
![Page 8: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/8.jpg)
8
Evolución sistemas operativos (2)
Primeros sistemas batch (2ª generación)– Lleva las tarjetas al 1401– Lee tarjetas a la cinta– Monta la cinta en el 7094 que realiza los cálculos– Monta la cinta en 1401 que imprime los resultados
![Page 9: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/9.jpg)
9
Evolución sistemas operativos (3)
• Un trabajo FORTRAN – 2ª generación
![Page 10: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/10.jpg)
10
Evolución sistemas operativos (4)
• 3ª generación:- Multiprogramación- Simultaneous Peripheral Operation On Line- Tiempo compartido: CTSS, MULTICS, UNIX
![Page 11: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/11.jpg)
11
Evolución sistemas operativos (5)
• 4ª generación:- Alta escala de integración: microcomputadores- Control Program for Microcomputer [CP/M]- Disk Operating System - MicroSoft Disk Operating System [MSDOS]- Graphical User Interface - Windows 3.x, 95, 98, NT, 2000, Me, XP, Vista- Linux (Red Hat, Debian, Caldera, ...)- Sistemas operativos de Red- Sistemas operativos distribuidos
![Page 12: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/12.jpg)
12
Tipos de sistemas operativos (1)• Sistemas operativos para mainframe
– Batch, transacciones, tiempo compartido– OS/390
• Sistemas operativos para servidores– Servicios de impresión, ficheros, web– Unix, Windows 2000, Linux
• Sistemas operativos multiprocesador– Unix, Encore
• Sistemas operativos para ordenadores personales• Sistemas operativos de tiempo real
– Hard real-time system, soft real-time system• Sistemas operativos empotrados (embarcados)
– PalmOS, Windows CE• Sistemas operativos para tarjetas inteligentes
![Page 13: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/13.jpg)
13
Conceptos de sistemas operativos (1)
• Proceso
– Un programa en ejecución.
• Espacio de direccionamiento– Código (texto)
– Datos
– Pila
• Contexto (entrada de la tabla de procesos)– Registros de la CPU
– PC, SP, PSW (SR).
– Tabla de ficheros abiertos
– Mapa de memoria
– .......
![Page 14: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/14.jpg)
14
Conceptos de sistemas operativos (2)
• Proceso– operaciones asociadas a un proceso
• Crear un proceso (relación padre-hijo)
• Terminar un proceso
• Comunicación y sincronización entre procesos
• Pedir/Liberar memoria
• Esperar a que termine uno de los hijos
• Cargar un fichero ejecutable
• Establecer/tratar/enviar señales
– Un proceso tiene varios identificadores
• uid, identificador del usuario propietario del proceso
• pid, identificador del propio proceso
• gid, identificador del grupo del propietario del proceso
![Page 15: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/15.jpg)
15
Conceptos de sistemas operativos (3)• Interbloqueo entre procesos
Los interbloqueos se producen por la competencia entre
procesos por conseguir los recursos del sistema
![Page 16: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/16.jpg)
16
Conceptos de sistemas operativos (4)• 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)
• Gestión de dispositivos de E/S
– Teclados, monitores, impresoras, discos, ...
– Software de E/S independiente del dispositivo (protección,
buffering, esquema de nombrado, tamaño de bloque, ...)
– Software de entrada salida dependiente del dispositivo (drivers)
![Page 17: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/17.jpg)
17
Conceptos de sistemas operativos (5)• Sistema de ficheros
![Page 18: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/18.jpg)
18
Conceptos de sistemas operativos (6)
• Operaciones sobre ficheros– Crear, abrir, cerrar, leer, escribir, posicionar, borrar, ...
• Un directorio también es un fichero (árbol)
• Un fichero tiene un nombre– Absoluto, desde el directorio raíz (root directory)
/Faculty/Prof.Brown/Courses/CS101
– Relativo al directorio de trabajo (working directory) si wk = /Faculty/Prof.Brown,
Courses/CS101
Existe una llamada para establecer el directorio de trabajo
• Descriptor de fichero– Cuando se abre un fichero, el SO devuelve un identificador
![Page 19: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/19.jpg)
19
Conceptos de sistemas operativos (7)
• Antes de montar – Los ficheros del disquete son inaccesibles
• Después de montar el floppy en b,– Los ficheros del disquete forman parte del sistema de ficheros
• Sistema de ficheros montado
![Page 20: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/20.jpg)
20
Conceptos de sistemas operativos (8)• Tipos de ficheros
– Ficheros ordinarios (regulares)
– Ficheros especiales de dispositivo• Los dispositivos de E/S se ven como ficheros.
– Especial de bloques (por ejemplo, discos, /dev/hd01)
– Especial de caracteres (por ejemplo, impresora /dev/lpt)
– Tuberías (pipes)• Un pseudofichero
• Dos descriptores: uno para leer y otro para escribir
• Comunican procesos
![Page 21: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/21.jpg)
21
Conceptos de sistemas operativos (9)
• Shell– Intérprete de comandos
– No es parte del sistema operativo
– sh, csh, ksh, bash
– Crea procesos nuevos para ejecutar comandos
– Gestiona las redirecciones (entrada/salida) y pipes$ cat file1 file2 file3 | sort > /dev/lp
– Ejecución en background$ cat file1 file2 file3 | sort > /dev/lp &
• Seguridad– Bits rwx de los ficheros (3 juegos: propietario, grupo, otros)
rwx rwx rwx
![Page 22: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/22.jpg)
22
Llamadas al sistema (1)
Veremos llamadas al sistema de POSIX
Son invocaciones de rutinas de biblioteca
![Page 23: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/23.jpg)
23
Llamadas al sistema (2)
Ejemplo: count = read (fd, &buffer, nbytes)
¿ ?
![Page 24: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/24.jpg)
24
Llamadas al sistema (3)
![Page 25: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/25.jpg)
25
Llamadas al sistema (4)• Esqueleto de una shell:nn
while (TRUE) { /* repeat forever */
type_prompt( ); /* display prompt */ read_command(command, parameters) /* input from terminal
*/ if (fork() != 0) { /* fork off child process */ /* Parent code */ waitpid (-1, &status, 0); /* wait for child to
exit */ } else { /* Child code */ execve (command, parameters, 0); /* execute command
*/ }}
![Page 26: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/26.jpg)
26
Llamadas al sistema (5)
![Page 27: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/27.jpg)
27
Llamadas al sistema (6)
![Page 28: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/28.jpg)
28
Llamadas al sistema (7)
(a) Antes de que ast haga: link (“/usr/jim/memo”, “/usr/ast/note”)
(b) Los mismos directorios después de la llamada al sistema
link
![Page 29: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/29.jpg)
29
Llamadas al sistema (8)
(a) Sistema de ficheros antes de mount (“/dev/fd0”, “/mnt/”, 0)
(b) Sistema de ficheros después de la llamada al sistema
![Page 30: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/30.jpg)
30
Llamadas al sistema (9)
![Page 31: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/31.jpg)
31
Llamadas al sistema (10)
Los tres segmentos de un proceso: texto, datos, pila
brk (newDirection)
(La sección 1.6.5 no entra)
![Page 32: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/32.jpg)
32
Estructura de los S.O. (1)
Sistema monolítico
Llamadas al sistema
![Page 33: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/33.jpg)
33
Estructura de los S.O. (2)
Capas del sistema operativo Minix
Sistemas por capas
![Page 34: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/34.jpg)
34
Estructura de los S.O. (3)
Estructura del VM/370 con CMS
Máquinas virtuales
![Page 35: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/35.jpg)
35
Estructura de los S.O. (4)
Exokernels
• El exokernel crea N máquinas virtuales y cada una tiene asignado un subconjunto de los recursos hardware de la máquina real.
• El exokernel (en modo kernel) valida que el acceso a los recursos sea correcto.
![Page 36: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/36.jpg)
36
Estructura de los S.O. (5)
El modelo cliente-servidor
![Page 37: Intro - Sistemas Operativos](https://reader034.vdocuments.pub/reader034/viewer/2022051820/55cf917e550346f57b8de9ec/html5/thumbnails/37.jpg)
37
Estructura de los S.O. (6)
Modelo cliente-servidor en un sistema distribuido