Está en la página 1de 52

1

DISEO DE
SISTEMAS OPERATIVOS

ING. NGEL CAFFA

Facultad de Ingeniera
Universidad ORT
Temario
2

Generalidades Generalidades de Sistemas Operativos


Definicin, Evolucin, SO por lotes, Multiprog.
de S.O. Tiempo compartido, Clasificaciones

Gestin de procesos
Gestin de Definicin, Operaciones, PCB, RCB, Estados,
procesos Ncleo, Concurrencia, Algoritmos, Semforos

Memoria
Memoria Almacenamiento Real y
Almacenamiento Virtual.
Temario
3

Disco
Disco Gestin, Optimizacin tiempo de bsqueda,
File System, Bloques, Buffers...

Conceptos de Seguridad
Conceptos Requisitos de Seguridad, S. Externa,
de Seguridad controles, validaciones, S. Interna
Bibliografa
4

Sistemas Operativos. Deitel.


Sistemas Operativos. Peterson.
Sistemas Operativos Modernos. Tanenbaum.
Conceptos de Sistemas Operativos. Silberchatz-
otros.
The Logical Design of Operating Systems. Bic-
Shaw.
El Entorno de Programacin Unix. Kernighan-Pike.
Sistemas Operativos, diseo e implementacin.
Tanenbaum.
Aprobacin del curso
5

2 Parciales y 1 obligatorio.
Pruebas sin material.
El segundo parcial abarca todos los temas.
Preguntas tericas, ejercicios, problemas,
situaciones reales.
Ganancia de curso.
Aprobacin del curso.
Examen individual, solo preguntas letra,
solos.
Cronograma
6

Comienzo: Lunes 12 de Marzo.


Lectura obligatorio.
Preparacin primer parcial (simulacro y correccin).
Primer parcial.
Resultados primer parcial, muestra.
Entrega obligatorio.
Preparacin segundo parcial.
Segundo parcial.
Defensas obligatorio.
Resultados segundo parcial y obligatorio, muestra.
Consulta examen.
Examen.
Resultados examen, muestra.
Horarios
7

Grupo Matutino
Grupo Nocturno

Cada semana se ven los mismos temas con


los dos grupos (recuperacin).
El curso dentro de la
formacin de un informtico
Arquitectura Sistemas
de sistemas operativos Redes Prog. B.D. ...

Administracin de sistemas Programacin en un


bajo un sistema operativo lenguaje determinado
determinado

Configuracin de redes
Diseo y configuracin de
bajo un conjunto determinado
Sistemas, servicio tcnico
de protocolos.

...
8
El curso dentro de la
9 formacin de un informtico
Se trata de una asignatura bsica,
general, al igual que el resto de las
marcadas en el bloque.
Sirve de base para comprender aspectos

tcnicos concretos (pasados, presentes y


muchas veces futuros).
Marca la diferencia con los tcnicos.
Enfoque del curso
10

Se trata de temas clsicos dentro de la


informtica.
Los sistemas operativos actuales,
cumplen con los modelos tericos que se
ven en el curso.
Las variantes se ven en los estudios de

caso.
Enfoque del curso
11

Sistema operativo = Software de bajo nivel para gestin de los


recursos del sistema

Recursos crticos = CPU, memoria y disco

Gestin de CPU Gestin de memoria

Gestin de disco

Gestin de otros recursos del sistema


12

I - GENERALIDADES
DE LOS SISTEMAS
OPERATIVOS
Sistemas Operativos
Repaso de conceptos
13 bsicos
Componentes de un sistema informtico:
hardware, software y gente.
El hardware proporciona la capacidad bruta
de cmputo, abarca todas las componentes
tangibles del sistema.
El software abarca los programas y datos (no
tangibles).
Sistema informtico = conjunto de recursos.
Sistemas abiertos. Esta tendencia implica
componentes compatibles a nivel de
hardware, software, comunicaciones, etc.
Recursos
14

Son los componentes del sistema. El


conjunto de recursos constituye la
capacidad bruta de cmputo para el
sistema.

Ejemplos de recursos: (Micro) procesador,


memoria, disco, unidad de CD, impresora,
scanner, lector de barras, mouse, teclado,
etc.
Definicin de sistema
15 operativo

Un sistema operativo es un
conjunto de programas que
administran los recursos del
sistema, proporcionando y arbitrando
el acceso a los mismos por parte de
los usuarios del sistema.
Definicin de SO
16

Desglosando lo anterior, el SO:


Est compuesto por programas.
Trata el hardware como un conjunto de recursos.
Puede reconocer diferentes usuarios.
Administra los recursos.
Permite acceso a recursos.
Proporciona a usuarios una interfaz para
interactuar con el sistema y sus recursos.
Proporciona a otros programas una interfaz para
interactuar con el sistema y sus recursos.
Arbitra el acceso a recursos.
Proporciona mecanismos de seguridad.
Adems el S.O. ...
17

Es de alguna forma el nexo entre el


hardware y el software.
Brinda al usuario un ambiente de trabajo
(ms cmodo que tener que resolver cada
vez los problemas de bajo nivel, etc.).
Asigna (y por lo tanto arbitra) los recursos
del sistema.
Analoga
18

Hardware = automvil.
Sistema operativo = conductor.
El automvil no funciona sin el conductor.
Distintos conductores logran funcionamientos
diferentes para el mismo auto.
El auto consta de un conjunto de recursos
que constituyen su capacidad bruta de
funcionamiento.
El motor, la direccin, el sistema de frenos, el
sistema elctrico, etc., son los recursos.
Primer esquema de capas
19

Programas

Sistema

Hardware
USUARIO

=
Recursos

Operativo
Evolucin de los SO
20

1822 Charles Babbage idea


una mquina diferencial mecnica que
calculaba polinomios de grado <= 6Rplica
(
de la mquina diferencial de Babbage

sobre Z. Totalmente diseada, no sehttp://io9.com/5665687/bringing-back-babbage


) pudo construir.
1830 Charles Babbage disea una mquina
analtica mecnica. No se pudo construir por la
complejidad de sus piezas. Aparece conceptos de:
almacenamiento en tarjetas, almacenamiento en
variables (memoria), almacenamiento de un conjunto
de operaciones (programa).
1896 Primera computadora real. Censo USA,
tarjetas perforadas, primer sistema de codificacin.
Horelitz, que luego fundara IBM.
Primera generacin
21

Dcadas de 1940 y 1950.


A vlvula (necesidad de

refrigeracin), muy lentas, ENIAC (http://ftp.arl.mil/ftp/historic-computers/)

cuartos enteros.
Los programas se introducan bit a bit con
interruptores mecnicos, luego pasaban a la
computadora va tarjetas perforadas.
Los resultados se expresaban a travs de leds.

ENIAC Clculo trayectorias balsticas, 1800


vlvulas de vaco, 32 bits de memoria, una suma en
0,2 ms.
Surge la arquitectura de Von Neumman

Evolucin de los SO - Primera generacin


Primera generacin
22

1951 ENIAC I, primera computadora para uso


comercial.
Programas perforados en tarjetas, pero an no
haban nada parecido a un sistema operativo.
1953 Aparece el primer sistema operativo.
Escrito por General Motors para la IBM 701.
La necesidad original era de un programa que
gestionara la E/S. Adems, cuando un programa
finalizaba una rutina, el SO saltaba al flujo de
ejecucin del programa siguiente. Era monotarea.
Denominados sistemas de procesamiento por
lotes de secuencia nica.

Evolucin de los SO - Primera generacin


Segunda generacin: 1955-
23 65
Hardware: sustitucin de vlvulas por
transistores.
Primeras mquinas fabricadas en serie.
El que fabrica la computadora ya no es el
usuario.
Muy grandes, cuartos especiales, temperatura.
Job sequencing: Al finalizar un trabajo se lanza
otro en forma automtica, sin necesidad de
monitoreo ni intervencin del operador.
Se gana en eficiencia de uso del sistema al
aparecer los sistemas de procesamiento por
lotes (batch).
Evolucin de los SO - Segunda generacin
Sistemas de proceso por
24 lotes
Con los sistemas batch:
Se pasan varios programas de tarjeta a una cinta (con una
computadora que haga eso eficientemente).
La cinta resultado es la entrada de otra computadora (que
realiza clculos eficientemente), que es donde corren los
programas.
La salida de esa ejecucin se enva a una cinta, y otra
mquina manda la salida a la impresora.
Un sistema operativo de esta poca era, por ejemplo, el
Fortran Monitor System.
Los usuarios no estn en el centro de cmputos mientras
se ejecutan sus programas. Los programas deban esperar,
y si ocurran errores (incluso sintcticos), haba que repetir
todo este proceso tan lento.

Evolucin de los SO - Segunda generacin


Sistemas de proceso por lotes
25 (batch).
Antes, la forma de utilizar los sistemas
era:

Evolucin de los SO - Segunda generacin


Sistemas de proceso por
26 lotes
Aparece el concepto de buffering: consiste en
solapar las operaciones de entrada/salida con la
computacin del proceso.
Se aprovecha mejor la CPU.
En hardware, la innovacin que posibilit el
buffering fue que los procesadores tienen registros
e instrucciones propios para la comunicacin entre
CPU y canales controladores de entrada/salida.
El proceso en ejecucin solicita una operacin de
E/S (que es lenta). El controlador la hace, y
mientras ese proceso sigue, hasta que, va una
interrupcin, el controlador avisa que termin.
Esta es una primera forma de multitarea.

Evolucin de los SO - Segunda generacin


Sistemas de proceso por
27 lotes
Estos dispositivos perifricos (algunos realizan la
E/S por interrupciones):
Lectoras de tarjetas.
Perforadoras de tarjetas.
Impresoras.
Unidades de cinta.
Unidades de disco.

El desafo era usar estos recursos eficientemente,


y, en particular, el recurso procesador al
interactuar con ellos.
En definitiva, es importante no tener procesador
ocioso.
Aparece el overhead: tiempo desperdiciado por el
procesador.
Evolucin de los SO - Segunda generacin
Multiprogramacin
28

Cuando una tarea utilizaba el procesador,


otras podan usar los dispositivos de E/S.
La mejor forma de usar el tiempo de CPU, es
que, en un momento dado, el sistema ejecute
no una tarea, sino un conjunto de tareas.
En esto se basa el concepto de
multiprogramacin: varias tareas se
encuentran simultneamente en memoria
principal, y el procesador se conmuta de una
tarea a otra buscando su avance a medida
que requieren uso de los dispositivos
perifricos.
Evolucin de los SO - Segunda generacin
Tercera generacin: 1965-
29 70
Innovacin en hardware: aparecen circuitos
integrados (a baja escala).
Aparece la primer minicomputadora: PDP-8
(antecesoras de las Digital VAX).
Aparece la familia de computadoras de IBM,
System/360 (1964). 16 Kb. RAM, 300.000
ops./seg. Primera serie que busca unificar
mquinas cientficas y comerciales. Costo del
orden del milln de dlares.
La sigui la serie 370 y luego 4300 y 30X0.
Hardware compatible dentro y entre las series
IBM (no as en las PDP por ejemplo).

Evolucin de los SO - Tercera generacin


OS/360
30

El IBM 360, tiene un sistema operativo, OS/360.


Sistema operativo muy grande, millones de
instrucciones Assembler, muchos bugs.
Se arreglaban algunos bugs y surgan otros.
Aparecen algunas ideas de ingeniera de
software, al tratarse lo relativo al desarrollo de
programas grandes.
Multiprogramacin:
Mientras un proceso espera E/S, otro toma la CPU.
Memoria dividida en reas, asignadas a diferentes
procesos.
Mecanismos de proteccin de memoria.

Evolucin de los SO - Tercera generacin


Spooling
31

Las computadoras de la tercera generacin


tenan almacenamiento secundario, no voltil,
basado en:
Cintas: acceso secuencial, se agregan datos al final.
Discos: acceso aleatorio, se puede modificar un archivo
por la mitad.
As, siempre que se termina de ejecutar un
trabajo, el SO puede cargar uno nuevo del disco
y comenzar a ejecutarlo.
Tambin esto permite spooling, para el manejo
de colas de impresin, y para la salida.
Spool=Simultaneous peripheral operation on line.

Evolucin de los SO - Tercera generacin


Spooling
32

Si un proceso va a imprimir, no manda


directamente a la impresora sino a un
archivo.
Luego se imprime desde dicho archivo.
Si varios procesos producen salidas a
impresora, entonces todos sacan su salida a
disco, y luego de ah a la impresora.
Aparece la cola de impresin.
As, se comienza a aprovechar mejor un
recurso caro como lo es la CPU, al liberarlo
de atender dispositivos lentos.
Evolucin de los SO - Tercera generacin
Tiempo compartido
33

An no se trabajaba de la forma ms eficiente.


Los programas entregaban las tarjetas al operador,
si haba errores de compilacin, haba que cambiar
algunas tarjetas y reiniciar el proceso.
Surgen las mquinas de tiempo compartido
(time sharing).
Varios usuarios utilizan al mismo tiempo la
computadora, en principio compitiendo (ms que
compartiendo) por sus recursos.
As, los sistemas operativos podan atender a varios
usuarios interactivos, que se comunican con el
computador a travs de terminales en lnea.

Evolucin de los SO - Tercera generacin


Tiempo compartido
34

Un gran nmero de usuarios pueden trabajar


simultneamente en forma interactiva.
De alguna forma, se ofrece a cada usuario la ilusin de
que dispone de el sistema para l.
Los sistemas de tiempo compartido de los aos 60,
trabajaban tambin en modo de proceso por lotes y con
aplicaciones de tiempo real.
Los sistemas de tiempo real dan respuestas en tiempos
mnimos preestablecidos. Ejemplo: sensores de estabilidad
en un avin.
En general son usados por debajo de su capacidad, a fin de
asegurar esos tiempos mnimos, y eso explica su alto costo.
En los sistemas de tiempo real, la multiprogramacin debe
ser controlada de acuerdo a restricciones de tiempo y
prioridades.

Evolucin de los SO - Tercera generacin


Tiempo compartido
35

En 1961 aparece el CTSS, sistema operativo time


sharing, desarrollado por el MIT. Tambin el TSS de IBM.
TSS=Time Shared System.
Otros sistemas de tiempo compartido:
Multics del MIT, sucesor de CTSS, antecedente de Unix.
Primer SO que intent escribirse en un LP de alto nivel (PL/I).
CP/CMS, antecesor del VM de IBM.
Todos estos eran sistemas de tiempo compartido,
permitan compartir programas y datos, y mostraron el
valor de la computacin interactiva en los ambientes
de desarrollo de programas.
El tiempo de retorno (tiempo entre introduccin de una
tarea y recepcin de su resultado) baj a segundos.

Evolucin de los SO - Tercera generacin


Tiempo compartido
36

El usuario poda introducir programas,


compilarlos, corregir errores (sintcticos),
recompilar hasta librarlo de errores,
ejecutarlo, depurarlo (errores semnticos)
hasta producir la versin final.
Esta modalidad de proceso de desarrollo
es muy similar a la actual. Notar cmo se
llega a la misma gracias a los progresos en
los sistemas operativos.
Los sistemas operativos comienzan a ser
vistos como ambientes de trabajo.
Evolucin de los SO - Tercera generacin
Multiprogramacin
37

Estos sistemas permitan trabajar con


varios procesos simultneos en ejecucin.
El procesador va turnando la ejecucin de
partes de cada uno.
El cambio de un proceso a otro se logra
gracias a las interrupciones.
Aparecen los mecanismos de proteccin
de memoria de modo de que coexistan
varios procesos en ejecucin.

Evolucin de los SO - Tercera generacin


Memoria virtual
38

El concepto de memoria virtual ya estaba


presente en TSS, Multics y CP/CMS.
As, los programas pueden usar ms memoria
de la que fsicamente el sistema proporciona.
Esto se logra combinando memoria RAM y disco.
As, los programadores dejaron de preocuparse
por los procedimientos y trucos para que un
programa entrara completamente en memoria,
concentrndose en el problema en s.

Evolucin de los SO - Tercera generacin


Ingeniera de software
39

Los programas en general, y los sistemas


operativos en particular, comenzaron a resolver
situaciones cada vez ms complejas.
As, crecieron en tamao y complejidad.
Comenzaron a aparecer versiones que corregan
errores de otras versiones, y en ellas aparecan
nuevos.
La necesidad de producir software confiable, fcil
de mantener, comprensible, etc. dieron origen a
la ingeniera de software.
Con esta disciplina se reconoce que todo
software es producto de un proceso de desarrollo.
Evolucin de los SO - Tercera generacin
Proceso de desarrollo de
40 software
Controlando la calidad en el proceso de
desarrollo, se logra dar calidad al producto del
mismo.
Aparecen tcnicas de project management
aplicadas a los proyectos de desarrollo de
software.
En general, se agregan herramientas para
lograr un PDS estructurado, predecible,
disciplinado.
De alguna manera se sentaron bases firmes
para el desarrollo de programas grandes, y en
particular, sistemas operativos ms complejos.
Evolucin de los SO - Tercera generacin
Origen de Unix
41

En 1969, fracasa el proyecto Multics de Bell y


General Electric.
Multics = Miltiplexed Information Computer Service.
Se trataba de un ambicioso proyecto de sistema
operativo grande, multitarea y multiusuario.
Primera vez que se intent usar un LP de alto nivel
en la codificacin de un SO (PL/I).
En Bell, Thompson y Ritchie escribieron, sobre una
PDP-7 un juego llamado Space Travel.
Para ste, Thompson escribi un ambiente de
trabajo para esa computadora, llamado Unics (U por
Uniplexed).
Origen de Unix
42

Luego, se pas a una versin de 16 Kb.


sobre un PDP-11.
Luego se desarrollaron el lenguaje B
(Thompson) y el lenguaje C (Ritchie).
Luego se reescribi gran parte del Unix en
C.
Con un fuente abierto, y adoptado primero
en ambientes acadmicos y luego tambin
comerciales, Unix inici su expansin.

Evolucin de los SO - Tercera generacin


Los aos 70
43

Predominaron los sistemas de tiempo compartido


con mltiples modos de operacin: procesamiento
por lotes, tiempo compartido y tiempo real.
Los computadores personales estaban en la etapa
inicial de su desarrollo, que vendra de la mano
del desarrollo de los microprocesadores.
Ya haban productos comerciales slidos.
Entonces, surgi el problema de comunicar
sistemas.
Aparecieron protocolos estndares de
comunicacin: TCP/IP (Depto. de Defensa de USA),
Ethernet (Xerox).
Comenzaron a surgir los primeros problemas de
seguridad. Aparece la criptografa, etc.
Todo esto se traduce en nuevas necesidades para
los sistemas operativos.
Evolucin de los SO - Tercera generacin
Cuarta generacin: 1980-90 y
44 actualidad
En hardware, se logra la integracin de transistores
en alta y gran escala.
Aparecen los PCs. Son similares a los
minicomputadores en estructura y conceptos, pero
ms pequeos y ms baratos.
fines 60s Apple con CP/M. (CP = Control Program).
Diskettes.
80-81: IBM lanza el primer PC. Procesador Intel 8086.
Sistema operativo DOS de Microsoft.
DOS = Disk Operating System.
1970 Antecedentes de manejo a travs de conos -
Xerox. Luego Mac OS (Apple), OS/2 (IBM) y Windows
(Microsoft).
Evolucin de los SO - Cuarta generacin
Redes
45

Idea: Compartir recursos.


Una red es un conjunto de computadoras autnomas
interconectadas.
Se lograron redes cuya potencia de cmputo es comparable a
las de los mainframes que predominaron en los aos 1970s.
Ventajas frente a los mainframes:
Ambos comparten recursos.
En la red no se compite por los recursos crticos CPU y
memoria.
Permiten administracin centralizada.
La red implica una inversin escalable.
Sistemas operativos distribuidos: trabajan sobre una red, pero
ocultan al usuario la presencia de la misma. Para el usuario es
transparente en qu sistema de la red se ejecutan sus
rdenes, eso lo resuelve el sistema operativo.

Evolucin de los SO - Cuarta generacin


Redes
46

Con las redes aparecieron nuevas


herramientas de comunicacin.
Aparecen redes de rea local y de rea
extensa, resultantes de la interconexin de
las primeras.
Aparece la red Internet (70s).
Crecen los requerimientos de los sistemas
operativos en cuanto a dar soporte a
mltiples usuarios, permitir el uso de redes
y permitir los niveles de seguridad y
auditora necesarios.
Evolucin de los SO - Cuarta generacin
Redes
47

Con el desarrollo de las redes aparecen


nuevas posibilidades y problemas:
Publicacin de bases de datos.
Distribucin de bases de datos.
Proteccin de accesos.
Auditora de accesos.
Ataques (hackers).
Aplicaciones de red.
Herramientas de publicacin y de comunicacin.
Aplicaciones cliente/servidor.
Transmisin de datos en tiempo real (imgenes,
etc.)
Comunicacin entre distintas plataformas.
Evolucin de los SO - Cuarta generacin
Los desafos en arquitectura y
48 sistemas operativos
Conectividad (resuelto)
Sistemas abiertos.
Paralelismo.
Sistemas distribuidos.
Mejoramiento de la interfaz con el
usuario.

Evolucin de los SO - Cuarta generacin


Sistemas operativos de los
49 ltimos aos
La familia Microsoft:
MS-DOS
Windows 3.X
Windows 95/98/ME
Windows NT / 2000 / XP
La familia Unix:
Unix SVR4, Unix BSD, Solaris, AIX, SCO Unix,
HP Ux, Irix, Linux.
Otros: OS/2, Mac, VM, etc.

Evolucin de los SO - Cuarta generacin


Clasificaciones
50

Proceso o tarea: es un programa en


ejecucin.
Sistema operativo:
Monotarea: slo permite un proceso en ejecucin a la
vez.
Multitarea: permite la ejecucin simultnea de varios
procesos.
Sistema operativo:
Monousuario: no reconoce la existencia de diferentes
usuarios.
Multiusuario: reconoce la existencia de diferentes
usuarios y arbitra el acceso de los mismos a los recursos
del sistema.
El ncleo o kernel
51

Sus funciones principales:


Schedulling de procesos (Gestin de CPU)
Manejo de memoria
Gestin de file systems (disco)
Control de lectura
52

A esta altura ya debe haber ledo los


captulos 1 y 2 de Deitel o sus
equivalentes en los otros textos.