Anda di halaman 1dari 76

Sistemas operativos

Profesorado de informática para escuelas secundarias


INTRODUCCIÓN
• Computadora Moderna
• Procesadores
• Periféricos
• Entrada
• Salida
• Entrada/Salida
• Comunicación
• Almacenamiento
INTRODUCCIÓN
• Programadores tuvieran que entender todas las partes y sus
conexiones, no escribirían ni medio código y….
INTRODUCCIÓN
• La manera de administrar los componentes de un
Sistema informático, es algo muy desafiante. Por ello
existen los ….
INTRODUCCIÓN
Los Sistemas Operativos  Capa de Software
Objetivo  Brindar al Usuario  Sistema de Computo: Mejorado,
Simple y Pulcro,. Además de….
INTRODUCCIÓN
INTRODUCCIÓN
INTRODUCCIÓN
INTODUCCIÓN
INTRODUCCIÓN
INTERFAZ
• SHELL

DOS
INTRODUCCIÓN
INTERFAZ
• SHELL

LINUX
INTRODUCCIÓN
INTERFAZ
• SHELL

UNIX
INTRODUCCIÓN
INTERFAZ
• GUI (Graphical User Interface; Interfaz gráfica de usuario) Windows
INTRODUCCIÓN
INTERFAZ
• GUI (Graphical User Interface; Interfaz gráfica de usuario) EN BASE
LINUX
INTRODUCCIÓN
INTERFAZ
• GUI (Graphical User Interface; Interfaz gráfica de usuario) UNIX
INTRODUCCIÓN
ESQUEMA GENERAL

HARDWARE
INTRODUCCIÓN
MODOS DE OPERACIÓN DEL SO
• Modo Kernel o Modo Supervisor
• Acceso completo al Hardware: Procesador y recursos del Sistema, etc.
• Ejecutar cualquier instrucción que entienda la máquina, que afectan su
control y los las instrucciones de E/S.
• Su fallo, bloquea el sistema (Pantallazo azul, solo en Windows). Solución
Resset.
• Modo Usuario (Modo de operación del CPU)
• Subgrupo de Instrucciones de Máquina, e.g.: add, sub, and, or, xor, etc.
Tambien se puede ejecutar load y store que se emplean para traer datos de
memoria a registro del procesador y viceversa. Pertenecen a este modo de
ejecución.
INTRODUCCIÓN
TRANSICIÓN DE MODOS.
• De usuario a supervisor mediante instrucción del procesador, INT
(interrupción por software) o SYSCALL para llamada al sistema.

• El SO, antes de asignar recurso al CPU o APP, pone el procesador en


modo usuario o no privilegiado.

• En el arranque, la CPU se ejecuta en modo supervisor para la


secuencia de arranque del SO.
INTRODUCCIÓN
A TENER EN CUENTA!!
• El programa de interfaz de usuario (shell o GUI), es el nivel más bajo
del software en modo usuario  permite la ejecución de otros
programas.
INTRODUCCION
A TENER EN CUENTA!!!
El SO se ejecuta directamente sobre el hardware y proporciona la base
para las aplicaciones de software.

HARDWARE
INTRODUCCIÓN
Distinción: SO vs Software en modo usuario!
• Si el Usuario no le gusta su Procesador de texto, no
puede cambiarlo o codificar el suyo, simplemente
cambia de procesador de texto.
• No puede escribir su manejador de interrupciones de
reloj sistema operativo  protegido por hardware
contra modificaciones del usuarios.
INTRODUCCIÓN
OTROS TIPOS DE SISTEMAS!!
• SISTEMAS INTEGRADOS: Sistema de computadora de
propósito especial. Realiza una función específica:
Microondas, Consolas, Routers, etc. Tienen su propio
kernel o nucleo.
• SISTEMAS INTERPRETADOS:
• Sistemas Operativos basados en JAVA.
• Para separar los componentes usan
interpretación prescindiendo del hardware.
INTRODUCCIÓN
PROGRAMAS ESPECIALES
Existen programas a modo usuario, pero ayudan al SO, realizando
funciones privilegiadas.
• Cambio de contraseña.
• No perteneces al SO.
• No se ejecuta a modo kernel.
• Realizan funciones privilegiadas.
• Función: Proteger el Sistema.
• Todo programa en modo kernel  SO
• Existen Programas fuera del SO
• Forman parte del SO
• Estrechamente ligado
INTRODUCCIÓN
TAMAÑO DE UN SO
• Diferencia con las aplicaciones
• El Kernel de Linux y Windows  5 M de línea de Codigo100 libros1000
hojas50 líneas.
• Programa de Usuarios
• Interfaz Grafica
• Explorados de Windows 10 a 20 veces lo anterior.
• Bibliotecas
• Por todo esto, es que los SO evolucionan y no se los desechan, ya que
es Difícil de escribir uno.
¿QUE ES UN SO?
PROBLEMA!

• SO realiza dos funciones básicas no relacionadas:


• proporcionar a los programadores y
programas de aplicaciones, un conjunto
abstracto de recursos simples que les
permitan desarrollar.
• administrar recursos de hardware.
¿QUE ES UN SO?
El SO como una máquina extendida
• La arquitectura (conjunto de instrucciones, organización de memoria,
E/S y estructura de bus) de la mayoría de las computadoras a nivel de
lenguaje máquina, es primitiva y compleja de programar, en especial
para la entrada/salida.
• Disco Flexible (Obsoleto)
• NEC PD765  16 Comandos.
• El programador debe dejar que una
abstracción de alto nivel se encargue
del Funcionamiento de los
componentes de Hardware.
¿QUE ES UN SO?
ABSTRACCIÓN. PERSPECTIVA PRINCIPAL (ARRIBA)
• Discos disco Flexible, abstracción común:
• Colección de archivos.
• Tareas que se pueden hacer sobre ellos:
• Apertura
• lectura o escritura
• cerrado.
• La forma grabación, estado del motor no son parte en la abstracción.
• Abstracción  clave para tratar la complejidad  convierte 1 tarea compleja
en dos tareas manejables.
• Implementar las abstracciones
• Utilizarlas para resolver el problema en cuestión.
• Ejemplo: Archivos.
• EL SO  crear buenas ABSTRACCIONES.
• Implementar y Administrar los Objetos Abstractos creados
¿QUE ES UN SO?
ABSTRACCIÓN.
• Clientes del SO  Programas de Aplicación.
• Programadores lidian con SO y sus Abstracciones.
• Usuario Final  Abstracción de la Interfaz de Usuario (Periferia del
Sistema Operativo):
• Shell
Son muy distintas.
• GIU

• NOTA: Perspectiva de ARRIBA hacia ABAJO.


INTRODUCCIÓN
El sistema operativo como administrador de recursos (ABAJO)
• El SO proporciona una asignación ordenada y controlada de los
procesadores, memorias y dispositivos de E/S, entre los programas
que compiten por estos recursos.
INTRODUCCIÓN
El sistema operativo como administrador de recursos (ABAJO)
• Ejemplo de las 3 Impresiones.

El SO impone orden al caos potencial, guardando en búferes en disco


la salida destinada para la impresora.
INTRODUCCIÓN
El sistema operativo como administrador de recursos (ABAJO)
• Si un Servidor o PC en red tiene varios usuarios:
• Administrar y proteger la memoria, los dispositivos de E/S.
• Motivos?
• Los Usuarios podrían interferirse.
• Por que?
• Los usuarios necesitan con frecuencia compartir:
• Hardware
• Archivos
• Bases de datos
• Según esta visión de sistema operativo sostiene como tareas principales:
• Llevar un registro del programa y el recursos utilizado
• Otorgar las peticiones de recursos
• Contabilizar su uso
• Mediar las peticiones en conflicto provenientes de distintos programas y usuarios.
INTRODUCCIÓN
Multiplexaje
• Es la administración de recursos.
• Multiplexaje  compartir de recursos en dos formas:
• En tiempo
• En el espacio
• Multiplexaje en tiempo:
• Los distintos programas o usuarios se turnan para utilizarlo: uno de ellos obtiene
acceso al recurso, después otro, y así en lo sucesivo.
• Ejemplo, con sólo una CPU y varios programas a ejecutarse, y la impresora y varios
trabajos de usuarios a imprimir.
• La tarea de determinar cómo se multiplexa el recurso en el tiempo (quién
sigue y durante cuánto tiempo) es responsabilidad del sistema operativo.
Otro ejemplo de multiplexaje en el tiempo es la compartición de la
impresora.
INTRODUCCIÓN
Multiplexaje
• Multiplexaje en el espacio.
• Cada Usuario obtiene una parte del recurso.
• La memoria principal se divide entre varios programas que pueden estar
residente al mismo tiempo.
• Ejemplo: tomar turnos al utilizar la CPU.
• Es más eficiente contener varios programas en memoria, que proporcionar a un solo
programa toda la memoria (fracción pequeña.
• Problemas:
• Equidad y protección que debe resolver el SO
• Ejemplo: Disco duro
• Puede contener archivos de muchos usuarios al mismo tiempo.
• El SO debe asignar espacio en disco y llevar registro de quién está utilizando cuáles bloques
de disco.
INTRODUCCIÓN
Historia y evolución. (Es guía no la ultima palabra).
• Primera computadora digital verdadera  Charles Babbage (de 1792
a 1871).
• “Máquina analítica”
• Nunca funciono de manera apropiada.
• Mecánica y la tecnología no podía producir las ruedas, engranes y
dientes con la alta precisión.
• No tenía un sistema operativo.
• Babbage observo que necesitaba software para su máquina analítica.
• Contrató a Ada Lovelace (Lord Byron)
• La primera programadora del mundo.
• El lenguaje de programación Ada® lleva su nombre.
INTRODUCCIÓN
Historia y evolución. (Es guía no la ultima palabra).
• Los S.O. han evolucionado a través de los años. Su historia y desarrollo esta ligado con
las generaciones de computadoras.
• Prehistoria (años cuarenta).
• Prácticamente sin S.O.
• Procesamiento en serie.
• Primera generación (años cincuenta).
• Procesamiento por lotes
• Segunda generación (años sesenta)
• Multiprogramación y tiempo compartido.
• Tercera generación (años setenta)
• Sistemas de propósito general y multimodo de operación.
• Cuarta generación (años ochenta hasta la actualidad)
• Proceso distribuido.
• Se difunde el concepto de máquina virtual.
INTRODUCCIÓN
Historia y evolución. Primera Generación. 0

Computadora de Atanasoff y Berry después de Computadora Z3. Konrad Zuse (Aleman).


1945. ABC. Válvulas de vacío. 1944. Utilizaba Relés o Relevadores.
https://www.youtube.com/watch?v=YyxGIbtM https://www.youtube.com/watch?v=aUXnhVrT
S9E 4CI
INTRODUCCIÓN
Historia y evolución. Primera Generación.

Bletchley Park , Alan Turing, H. Flowers. 1941-1943. Descifradora de códigos. Maquina de Turing. Válvulas
de vacío, relés, tarjetas perforadas, maquina de escribir.
INTRODUCCIÓN
Historia y evolución. Primera Generación.

1944. Universidad de Harvard. Howard H. Aiken. 6 segundos para multiplicar y 12 para dividir. Computadora
basada en rieles (aprox. 3000), con 800 kilómetros de cable, con dimensiones de 17 metros de largo, 3 metros
de alto y 1 de profundidad.
INTRODUCCIÓN
Historia y evolución. Primera Generación.

ENIAC ( Electronic Numerical Integrator And Computer) 1943. John William Mauchly y John Presper Eckert. Se
termino en 1946. 167 mx2. 27 toneladas. Válvulas termoiónicas, 17468 tubos. 7.200 diodos de cristal. 1.500
relés. 70.000 resistencias. 10.000 condensadores. Juicio de Atanasoff.
INTRODUCCIÓN
Historia y evolución. Primera Generación.
• Ingenieros diseñaban, construían, programaban, operaban y mantenían a
cada máquina.
• Programación en lenguaje máquina.
• Creando circuitos eléctricos. Conexión de miles de cables a tableros de
conexiones (plugboards) Controlar funciones básicas de la máquina.
• No se conocían los lenguajes de programación.
• No existían los sistemas operativos.
• Modo usual de operación Trabajo por periodo, Vigilando constante mente
20000 bulbos.
• Problemas: cálculos numéricos simples, senos, cosenos y logaritmos.
• INTRODUCCIÓN de tarjetas perforadas. Escribir programas en tarjetas y
leerlas.
MARK1: DISEÑADA POR AIKEN
Computadora Univac de Mauchley
ENIAC de Mauchley y Etcker
Computadora Colossus de Tomy Flowers
INTRODUCCION.
Historia y Evolución. La segunda generación.
• Transistores y sistemas de procesamiento por lotes. 1950.
• Bastante confiables. Se fabrican y venden.
• Comenzó la separación entre: diseñadores, constructores,
operadores, programadores y el personal de mantenimiento.
• Conocidas como mainframes  cuartos especiales con aire
acondicionado y grupos de operadores profesionales.
• Exclusivo de Empresas grandes, universidades o agencias
gubernamentales.
INTRODUCCION.
Historia y Evolución. La segunda generación.
INTRODUCCION.
Historia y Evolución. La segunda generación.
• Se programaba en FORTRAN o en ensamblador y después lo pasaba a
tarjetas perforadas.
• Se llevaba el conjunto de tarjetas al cuarto de entrada de datos y lo
entregaba a uno de los operadores.
• Un operador sacaba las hojas de resultados impresas para llevarlas al
cuarto de salida de datos
• El programador recogía posteriormente. .
• Si se necesitaba el compilador FORTRAN.
• Dificultad: Gran perdida de tiempo.
• Solución: Procesamiento por Lotes.
INTRODUCCION.
Historia y Evolución. La segunda generación.

Procesamiento por lotes.


SO típicos FMS (Fortran Monitor System) o SO IBSYS, de la 7094 de IBM.
INTRODUCCION.
Historia y Evolución. La segunda generación.
INTRODUCCION.
Historia y Evolución. La segunda generación.

IBM 1401
INTRODUCCION.
Historia y Evolución. La segunda generación.

IBM 7094
INTRODUCCION.
Historia y Evolución. La Tercera generación.
• Principio de la década de 1960. Se fabrican dos líneas de computadoras
distintas e incompatibles.
• Computadoras científicas orientadas a palabras (IBM 7094, cálculos
numéricos, ciencia, ingeniería) Equipo Grande
• Computadoras comerciales orientadas a caracteres (IBM 1401, ordenar
cintas, imprimir datos) Equipo Pequeño
• Problema: el costo de desarrollar y dar mantenimiento a dos líneas de
productos completamente distintos.
• IBM comenzó a Fabricar las familias de computadoras compatibles
System/360. Científico/Comercial. Circuito Integrado. SO OS/360.
INTRODUCCION.
Historia y Evolución. La Tercera generación.
OS 360
INTRODUCCION.
Historia y Evolución. La Tercera generación.

System 360
INTRODUCCION.
Historia y Evolución. La Tercera generación.
Presentación
característica
de los libros de
SO en la
década del 70,
80 y 90.
INTRODUCCION.
Historia y Evolución. La Tercera generación.
• Los SO de esta Generación, dejaban
medianamente satisfecho a los USUARIOS.
Aparecieron técnicas clave:
multiprogramación.
• IBM 7094, Periodos de inactividad grandes
debido a la entrada/.
• Meta: evitar que la costosa CPU 7094, este
inactiva por mucho tiempo.
• La solución: partición de memoria en varias
piezas. Un trabajo distinto en
• cada partición
INTRODUCCION.
Historia y Evolución. La Tercera generación.
• Mientras que un trabajo esperaba a que se completara una operación de
E/S, otro usando la CPU. El 360 y los demás sistemas de tercera generación
estaban equipados con este hardware.
• Otra característica importante: la capacidad para leer trabajos en tarjetas y
colocarlos en el disco rápidamente.
• Cada vez que terminaba un trabajo en ejecución, el SO podía cargar un
nuevo trabajo del disco en la partición que estaba vacía y lo ejecutaba.
• Aesta técnica se le conoce como spooling (de Simultaneous Peripheral
Operation On Line, operación periférica simultánea en línea) y también se
utilizó para las operaciones de salida.
• Con el spooling, las máquinas 1401 no eran necesarias.
INTRODUCCION.
Historia y Evolución. La Tercera generación.
• Aunque estos SO eran apropiados para los cálculos científicos y las ejecuciones
de procesamiento de datos comerciales, seguía siendo sistemas de
procesamiento por lotes.
• El tiempo transcurrido entre enviar un trabajo y recibir la salida, varias horas.
• Una sola coma mal colocada ocasionaba la falla en la compilación.
• Perdida de tiempo.
• La necesidad de respuesta rápida origino el tiempo compartido (timesharing),
una variante de la multiprogramación donde cada usuario tenía una terminal
en línea.
• Si 20 usuarios están conectados y 17 de ellos están pensando en dar un paseo
o tomar café, la CPU se puede asignar por turno a los tres trabajos que desean
ser atendidos.
INTRODUCCION.
Historia y Evolución. La Tercera generación.
• El primer sistema de tiempo compartido de propósito general, fue el CTSS
(Compatible Time Sharing System, Sistema compatible de tiempo
compartido), se desarrolló en el M.I.T. en una 7094 modificada.
• MULTICS (MULTiplexed Information and Computing Service; Servicio de
Información y Cómputo MULTiplexado).
• MULTICS tuvo éxito parcial.
• Estaba basado en el Intel 386, con mucho más capacidad de E/S.
• Estaba escrito en PL/I y el compilador de PL/I se demoró por años, y apenas
funcionaba
• MULTICS = Maquina analítica de Charles Babbage en el siglo diecinueve.
INTRODUCCION.
Historia y Evolución. La Tercera generación.
Trabajos con MULTICS
INTRODUCCION.
Historia y Evolución. La Tercera generación.
• MULTICS introdujo muchas ideas nuevas en el nuevo mundo de la
Computación.
• Bell Labs, General Electric y M.I.T trabajaron en el proyecto. Las dos
primeras lo dejaron M.I.T persistió y logró MULTICS funcionara. Fue
instalado en casi 80 compañías y Universidades a nivel mundial.
• General Motors, Ford y la Agencia de Seguridad Nacional de los Estados
Unidos desconectaron sus sistemas MULTICS en la década de 1990, 30
años después de su presentación en el mercado.
• Se discontinuo por falta de actualización de hardware.
INTRODUCCION.
Historia y Evolución. La Tercera generación.
• Sobre “utilería para computadora” que usaba MULTIC se dijo:
• “Tal vez regrese en forma de servidores masivos de Internet
centralizados a los que se conecten máquinas de usuario
relativamente “tontas”, donde la mayoría del trabajo se realice en los
servidores grandes”.
• www.multicians.org
INTRODUCCION.
Historia y Evolución. La Tercera generación.
• En la 3° Generación hubo crecimiento de las minicomputadoras.
• DEC PDP-1 en 1961, tenía sólo 4K de palabras de 18 bits.
• Para trabajo no numérico, era tan rápida como la 7094.
• Se crearon una serie de otras PDP (a diferencia de la familia de IBM,
todas eran incompatibles) culminando con la PDP-11.
INTRODUCCION.
Historia y Evolución. La Tercera generación.
PDP 1
INTRODUCCION.
Historia y Evolución. La Tercera generación.

PDP 11
INTRODUCCION.
Historia y Evolución. La Tercera generación.
PDP 7
INTRODUCCION.
Historia y Evolución. La Tercera generación.
• Ken Thompson, científico de cómputo en Bell Labs que trabajó en
MULTICS, Escribió en minicomputadora PDP-7 una versión simple de
MULTICS para un solo usuario.
• Nació SO UNIX®, muy popular en el mundo académico, las agencias
gubernamentales y muchas compañías.
• Al estar el Código UNIX disponible se produjo un caos de SO al crearse
variables libres e incompatibles: System V de AT&T y BSD (Berkeley
Software Distribution, Distribución de Software de Berkeley) de la
Universidad de California en Berkeley.
INTRODUCCION.
Historia y Evolución. La Tercera generación.
• IEEE desarrolló un estándar para UNIX  POSIX
• POSIX define una interfaz mínima de llamadas al sistema a la que los sistemas UNIX
deben adecuarse.
• En 1987 se liberó un pequeño clon de UNIX  MINIX, con fines educativos.
• MINIX es muy similar a UNIX, incluyendo el soporte para POSIX.
• MINIX a evolucionado en MINIX 3.3. Versión estable del 2014.
• Existe un MINIX Neo, pero no es Sistema Operativo es un reproductor Multimedia
• MINIX Es altamente modular y de muy alta confiabilidad, Detecta y reemplaza módulos
con fallas o inutilizables (drivers controladores de dispositivos de E/S) al instante, sin
reiniciar y sin interferir los programas en ejecución.
• El sistema MINIX 3 está disponible en forma gratuita (incluyendo todo el código fuente)
www.minix3.org.
INTRODUCCION.
Historia y Evolución. La Tercera generación.
• Buscando una versión de producción (en vez de educativa)
gratuita de MINIX llevó a un estudiante finlandés, llamado
Linus Torvalds, a escribir Linux.
INTRODUCCION
La cuarta generación (1980 a la fecha):
las computadoras personales
• Con el desarrollo de los circuitos LSI (Large Scale Integration, Integración
a gran escala), miles de transistores en un centímetro cuadrado de silicio
(chip), nació la era de la computadora personal.
• Conocidas como microcomputadoras, no eran del todo distintas de las
minicomputadoras, con el tiempo comenzaron a diferenciarse.
• Mientras que la minicomputadora hizo posible que una compañía o
universidad tuviera su propia computadora, el chip microprocesador
logró que un individuo tuviera su propia computadora personal.
INTRODUCCION
La cuarta generación (1980 a la fecha):
las computadoras personales.
• Intel presentó el microprocesador 8080 en 1974 (primera CPU de 8 bits de
propósito general).
• Gary Kildall construyo dispositivo controlador para un disco flexible de 8 pulgadas
y conectaron el disco flexible con el 8080. Aparecio la primera microcomputadora
con un disco.
• Kildall escribió un sistema operativo basado en disco conocido como CP/M
(Control Program for Microcomputers; Programa de Control para
Microcomputadoras) para esta CPU.
• Intel considero que las microcomputadoras basadas en disco tuvieran mucho
futuro Kildall pidió los derechos para CP/M
• Kildall formó una compañía llamada Digital Research para desarrollar y vender el
CP/M.
INTRODUCCION
La cuarta generación (1980 a la fecha):
las computadoras personales
INTRODUCCION
La cuarta generación (1980 a la fecha):
las computadoras personales
• En 1977, Digital Research rediseñó el CP/M para adaptarlo de manera que se
pudiera ejecutar en todas las microcomputadoras que utilizaban los chips
8080, Zilog Z80 y otros.
• Se escribieron muchos programas de aplicación para ejecutarse en CP/M,
dominando por completo el mundo de la microcomputación durante un
tiempo aproximado de 5 años.
• IBMGatesBasic. IBMDigitla ResearchKildall. IBMGates.
GatesSeattle Computer ProductsDOS75000U$s,
GatesIBMPaquete DOS/BASIC. GatesTim PetersonDOS MS-DOS.
• GatesEmpresas mientras que Kildallusuarios finales
INTRODUCCION
La cuarta generación (1980 a la fecha):
las computadoras personales
• En 1983 IBM PC/AT, con CPU Intel 80286
• MS-DOS muy afianzado y CP/M en bajada.
• MS-DOS se utilizó ampliamente en el 80386 y 80486.
• La versión inicial de MS-DOS era bastante primitiva, las siguientes tenían
características avanzadas, incluyendo muchas tomadas de UNIX.
• CP/M, MS-DOS y otros sistemas operativos se basaban en comandos
mediante el teclado.
• Doug Engelbart en el Stanford Research Institute en el 1960 inventó la
Interfaz Gráfica de Usuario GUI, completa con ventanas, iconos, menús y
ratón.
• Xerox PARC adoptaron estas ideas y las incorporaron en las máquinas que
construyeron.
INTRODUCCION
La cuarta generación (1980 a la fecha):
las computadoras personales
• Steve Jobs, co-inventor de Apple, visitó PARC, vio una GUI y se dio cuenta
de su valor potencial, algo que la administración de Xerox no hizo.
• Jobs emprendió el proyecto de construir una Apple con una GUI. Creo Lisa,
demasiado costosa y fracasó comercialmente.
• Luego Jobs creo la Apple Macintosh, enorme éxito.
• Era mucho más económica que Lisa, sino también porque era amigable
para el usuario (user friendly).
• Estas fueron y son muy usadas en el mundo creativo del diseño gráfico, la
fotografía digital profesional y la producción de video digital profesional.
INTRODUCCION
La cuarta generación (1980 a la fecha):
las computadoras personales
• Familias de Sistemas Operativos.
• Windows
• Linux
• Unix FreeBSD

Anda mungkin juga menyukai