1-Introduccion Sistemas Operativos

download 1-Introduccion Sistemas Operativos

of 22

Transcript of 1-Introduccion Sistemas Operativos

  • 8/17/2019 1-Introduccion Sistemas Operativos

    1/22

    Sistemas OperativosRicardo Corin - Pedro R. D’Argenio

    Carlos Bederián - Rafael Carrascosa - Edgardo HamesDaniel Moisset - Natalia Bidart (invitada)

    Gonzalo Bonigo -Andrés BordeseCarlos Budde - Germán Ceballos

    Administrativas

    Horarios:

    Teórico: Lunes y Miércoles, de 14 a 16, Aula 27

    Laboratorio: Lunes y Miércoles, de 16 a 18, Lab 30 (arriba)

    Reservaremos un horario para consultas sobre el prácticoSistemas colaborativos:

    Moodle: Toda la info pasa por ahí

    svn: repositorio para administrar sus laboratorios

    Bibliografía principal:

    Sistemas Operativos Modernos, A. Tanenbaum, 3ra ed.,Prentice Hall

    Administrativas

    Promoción:

    Aprobar los 2 parciales con un promedio de 8 (ambos conmás de 6)

    Aprobar todos los labs con 6 o más

    Calificación final:0.4 * Parcial1 + 0.4 * Parcial2 + Lab

    donde Lab es una calificación entre 0 y 3 obtenida a partir deldesempeño en los laboratorios.

    Regularización:

    Aprobar los 2 parciales con 4 o más

    Aprobar todos los labs con 6 o más

    1. Introducción

  • 8/17/2019 1-Introduccion Sistemas Operativos

    2/22

    Una computadora es un sistema complejo que consta de:

    uno o más procesadores, memoria principal, discos,impresora, monitor, teclado, mouse, interface de red, etc.

    Administrar y utilizar todas las partes de este sistema demanera correcta y eficiente es un desafío muy serio.

    maneja todos estos recursos

    => Administrador de recursos

    provee una interfaz simple para su uso (capa de abstracción)

    => Máquina extendida

    Sistemas operativos

    - Acceso completo a todo elhardware

    - Puede ejecutar cualquierinstrucción de la máquina

    Puede ejecutar unconjunto limitado de las

    instrucciones de lamáquina

    shell / GUI

    Atención: tambiéncompiladores, editores, y

    además ls, passwd, chmod,etc.

    ¿Qué es un sistema operativo?

    Dos funciones básicas

    La

    arquitectura de lascomputadoras son primitivas ydifícil de programar

    ¿Saben cómo se lleva a cabouna lectura o escritura

    en el disco?

    ¿Qué es un sistema operativo?

    Dos funciones básicas

    Extender la máquina

    Oculta los detalles complejosde la máquina

    Presenta al usuario unamáquina virtual fácil de usar

    Es decir:brinda una abstracción

    Importante: tal abstraccióndebería ser homogénea

  • 8/17/2019 1-Introduccion Sistemas Operativos

    3/22

    ¿Qué es un sistema operativo?

    Dos funciones básicas

    Extender la máquinaOculta los detalles complejosde la máquina

    Presenta al usuario unamáquina virtual fácil de usar

    Es decir:brinda una abstracción

    Importante: tal abstraccióndebería ser homogénea

    Imaginense quéocurriría si 3 programasquieren imprimir al mismo

    tiempo (o usar el disco, o laCPU)

    ¿Qué es un sistema operativo?

    Dos funciones básicas

    Extender la máquinaOculta los detalles complejosde la máquina

    Presenta al usuario unamáquina virtual fácil de usar

    Es decir:brinda una abstracción

    Importante: tal abstraccióndebería ser homogénea

    Administrar RecursosAsegura que los programastengan acceso ordenado ycontrolado a los recursos

    El orden puede ser temporalo espacial

    ¿Qué es un sistema operativo?

    Dos funciones básicas

    Administrar Recursos

    Asegura que los programastengan acceso ordenado ycontrolado a los recursos

    El orden puede ser temporalo espacial

    Verificar quién usa qué cosa(protección)

    Otorgar cosas a quien lonecesite (sched., admin. mem,...)

    Llevar un registro del uso derecursos

    Mediar en conflictos denecesidad   !

      "  "  "  "  #   $

    ¿Qué es un sistema operativo?

    Dos funciones básicas

    Administrar Recursos

    Asegura que los programastengan acceso ordenado ycontrolado a los recursos

    El orden puede ser temporalo espacial

    Multiplexado:

    - en tiempo

    - en espacio   !  #   $

  • 8/17/2019 1-Introduccion Sistemas Operativos

    4/22

    Historia de los Sistemas operativos

    Primera generación [1945-1955]Válvulas, relés y tableros con enchufes

    Máquinas diseñadas, construidas programadas, operadas y mantenidaspor el mismo grupo de personas

    Programadas en lenguaje de máquina cableando del tablero de controlNo existía el concepto de de lenguajes de programación (ni asembler)

    Ni pensar en sist. operativos.

    Uso: El programador espera su turno / entra a la habitación y cablea /esperar horas y rogar que no se queme alguna de las 20000 válvulas

    Sólo cálculo numérico

    Mejora en los 50: tarjetas perforadas

    Mark I (Howard Aiken @ Harvard)ENIAC (Mauchly & Eckert @ Pennsylvania)

    Historia de los Sistemas operativos

    Segunda generación [1955-1965]Transistor => computadoras confiables

    Separación entre diseñadores, constructores, operadores,programadores y personal de mantenimiento

    Mainframes => altos costos de operación y mantenimiéntoIntroducción del sistema batch (procesamiento por lotes)- reducción de tiempos perdidos- bueno para procesamiento no interactivo

    Progr. Oper. Oper.

    Historia de los Sistemas operativos

    Tercera generación [1965-1980]Circuitos integrados

    Comienza con la introducción de la serie System/360 de IBM

    Familia de máquinas totalmente compatibles

    Múltiples usos: comercial / científico / militar / ...

    Diseño del OS/360: espantoso

    Introdujo técnicas claves, ej:

    Multiprogramación

    Spooling (Simultaneous Peripheral Operation On Line)

    Timesharing

    Se introduce las minicomputadoras: DEC PDP-1 --> PDP-7 / UNIX

    Gene Amdahl,Fred Brooks,Gerrit Blauw

    Historia de los Sistemas operativos

    Tercera generación [1965-1980]Circuitos integrados

    Comienza con la introducción de la serie System/360 de IBM

    Familia de máquinas totalmente compatibles

    Múltiples usos: comercial / científico / militar / ...

    Diseño del OS/360: espantoso

    Introdujo técnicas claves, ej:

    Multiprogramación

    Spooling (Simultaneous Peripheral Operation On Line)

    Timesharing

    Se introduce las minicomputadoras: DEC PDP-1 --> PDP-7 / UNIX

    Gene Amdahl,Fred Brooks,Gerrit Blauw

    Multiprogramación:

    muchos programas corriendo “al mismo tiempo”

    comparten recursos

    cuando un trabajo espera E/S otro usa la CPU

    Trabajos comerciales requieren hasta80%-90% E/S (I/O bound)

    Cálculos científicos requieren mucha CPU ypoca E/S (CPU bound)

    Se requiere hardware especial para protegerun trabajo de otro

  • 8/17/2019 1-Introduccion Sistemas Operativos

    5/22

    Historia de los Sistemas operativos

    Tercera generación [1965-1980]Circuitos integrados

    Comienza con la introducción de la serie System/360 de IBM

    Familia de máquinas totalmente compatibles

    Múltiples usos: comercial / científico / militar / ...

    Diseño del OS/360: espantoso

    Introdujo técnicas claves, ej:

    Multiprogramación

    Spooling (Simultaneous Peripheral Operation On Line)

    Timesharing

    Se introduce las minicomputadoras: DEC PDP-1 --> PDP-7 / UNIX

    Gene Amdahl,Fred Brooks,Gerrit Blauw

    Spooling:

    permitía leer tarjetas ycopiarlas a disco

    y al revés: las salidas de losprogramas se producían a discoy otro programa las imprimía

    es decir: hacía batch pero todoen una sola máquina

    Historia de los Sistemas operativos

    Tercera generación [1965-1980]Circuitos integrados

    Comienza con la introducción de la serie System/360 de IBM

    Familia de máquinas totalmente compatibles

    Múltiples usos: comercial / científico / militar / ...

    Diseño del OS/360: espantoso

    Introdujo técnicas claves, ej:

    Multiprogramación

    Spooling (Simultaneous Peripheral Operation On Line)

    Timesharing

    Se introduce las minicomputadoras: DEC PDP-1 --> PDP-7 / UNIX

    Gene Amdahl,Fred Brooks,Gerrit Blauw

    Timesharing:

    sistema batch -> la máquina no está dedicadaal usuario :-(

    variante de la multiprogramación donde cadausuario tiene su propia terminal

    idea: compartir la máquina entre variosusuarios total son pocos los que están activosal mismo tiempo

    => se genera una interactividad no antes vista

    CTSS -> 1er timesharing

    se populariza cuando aparece la protección porhardware

    MULTICS: ¡100 usuarios por máquina!

    Introduce ideas importantes

    Fuerte influencia a posteriori (Ej. MMU)

    Historia de los Sistemas operativos

    Tercera generación [1965-1980]Circuitos integrados

    Comienza con la introducción de la serie System/360 de IBM

    Familia de máquinas totalmente compatibles

    Múltiples usos: comercial / científico / militar / ...

    Diseño del OS/360: espantoso

    Introdujo técnicas claves, ej:

    Multiprogramación

    Spooling (Simultaneous Peripheral Operation On Line)

    Timesharing

    Se introduce las minicomputadoras: DEC PDP-1 --> PDP-7 / UNIX

    Gene Amdahl,Fred Brooks,Gerrit Blauw

    De UNIX surgen:System V, BSD, MINIX,

    Linux, Mac OSX, ...Ken Thompson (1969)

    Ver:http://www.levenez.com/unix/

    http://www.netneurotic.de/mac/unix/timeline.htmlO goog lear “timeline unix”

    Estándar POSIX

    Historia de los Sistemas operativos

    Cuarta generación [1980-hoy]LSI / VLSI / ...

    microcomputadoras (predecesoras de la PC)

    8080, Z80 -> CP/M (Control Program for Microcomputer - Gary Kildall)

    IBM-PC -> Kildall dice “no” (?!) -> DOS (Tim Paterson, luego en MS)

    Doug Engelbart desarrolla GUI @ Stanford en 1960

    es adoptado luego por Xerox (que no le pone pilas)

    y luego por Steve Job, que sí

    Apple -> Lisa -> Mac ... NextStep -> MacOSX

    Windows 3.11 -> 95 -> 98 -> Me

    NT -> 2000 -> XP -> Vista -> 7

    X-windows sobre UNIX: Luego KDE / Gnome / XFCE / ...

  • 8/17/2019 1-Introduccion Sistemas Operativos

    6/22

    Tipos de Sistemas Operativos

    Sistemas operativos para mainframes:

    Tipos de Sistemas Operativos

    Sistemas operativos para mainframes:

    Centro de procesamiento de grandes cantidades de datos

    debe manejar 1000 discos y terabytes de información

    Procesamiento de muchos trabajos por unidad de tiempo conenorme cantidad de E/S

    3 tipos de procesamiento:

    Batch (ej: liquidación de sueldo)

    Transacciones (ej: reservas de pasajes)

    Timesharing (ej: terminales para consultas)

    Ej: OS/360, IBMsystem z, Linux.

    Tipos de Sistemas Operativos

    Sistemas operativos para servidores:

    Tipos de Sistemas Operativos

    Sistemas operativos para servidores:

    Atiende muchos usuarios al mismo tiempo con el fin decompartir recursos y datos

    Puede proveer:

    Servicio de impresión

    Servicio de archivo (agni.famaf.unc.edu.ar)Servicio de mail (mail.famaf.unc.edu.ar)Servicio web (nfs.famaf.unc.edu.ar)Servicio de aplicación (ganesh.famaf.unc.edu.ar)Servicio de ...

    Característica importante -> SeguridadEj: Unix, Linux,

    Mac OSX, WindowsServer.

  • 8/17/2019 1-Introduccion Sistemas Operativos

    7/22

    Tipos de Sistemas Operativos

    Sistemas operativos para multiprocesadores:

    Tipos de Sistemas Operativos

    Sistemas operativos para multiprocesadores:

    Muchas CPUs en un único sistema:

    Multiprocesador -> muchas CPU comparten una memoria

    Multicomputadora -> c/CPU con su propia mem. (clusters)

    Usualmente variantes de los SO para servidores concaracterísticas especiales p/ comunicación y conectividad

    Sistemas operativos para computadoras personales:

    Tipos de Sistemas Operativos

    Sistemas operativos para multiprocesadores:

    Muchas CPUs en un único sistema:

    Multiprocesador -> muchas CPU comparten una memoria

    Multicomputadora -> c/CPU con su propia mem. (clusters)

    Usualmente variantes de los SO para servidores concaracterísticas especiales p/ comunicación y conectividad

    Sistemas operativos para computadoras personales:

    Provee una interfaz para un sólo usuario

    interactividad / capacidad multimedia / capacidad paracompartir información

    Ej: Linux, Mac OSX,Windows7.

    Tipos de Sistemas Operativos

    Sistemas operativos para computadoras de bolsillo / móviles:

  • 8/17/2019 1-Introduccion Sistemas Operativos

    8/22

    Tipos de Sistemas Operativos

    Sistemas operativos para computadoras de bolsillo / móviles:

    PDA / celulares modernos / tablets

    agenda, bloc de notas, calendario,

    telefonía, fotografía, audio, video,

    web browsing, G+, FB, Twitter, juegos, ...

    Tener en cuenta:

    arquitectura reducida (relativamente poco disco)

    bajo consumo de energía

    Ej: Palm OS, Symbian OS,Android, iOS, Windows CE,

    Blackberry.

    Tipos de Sistemas Operativos

    Sistemas operativos para sistemas de tiempo real:

    Tipos de Sistemas Operativos

    Sistemas operativos para sistemas de tiempo real:

    El tiempo es un parámetro clave

    Dos tipos:

    Sistemas de tiempo real estricto:

    -Ej: Control de procesos industriales, donde la recolecciónde datos que se usan para controlar el proceso deproducción de una planta industrial

    - c/acción debe ocurrir en un momento determinado

    Sistemas de tiempo real laxo:

    - Ej: Procesamiento de audio o video digital

    - el no cumplimiento de algunos plazos no afectasignificativamente el comportamiento

    Ej: QNX,RT Linux, VxWorks.

    También: Android, iOS,Windows CE, ...

    Tipos de Sistemas Operativos

    Sistemas operativos para sistemas integrados (o empotrados):

    Controlan disp. que usualmente no se ven como computadoras(microondas, TV, Automóviles, DVDs, ...)No aceptan software cargado por el usuario=> no necesita protección (sólo se ejecuta SW confiable)

    Sistemas operativos para nodos de sensores:Pequeñas computadoras que se comunican entre sí y con una estaciónbase en forma inalámbricaEnergía provista por bateríaLargos períodos desatendidos y a la intemperie

    Sistemas operativos para tarjetas inteligentes:

    Severas restricciones de procesamiento y memoriaAlgunas funcionan sólo a inducción! Otras corren JVM

    Ej: QNX,VxWorks, Android, iOS,

    Windows CE, ...

    Ej: Tiny OS

  • 8/17/2019 1-Introduccion Sistemas Operativos

    9/22

    Tipos de Sistemas Operativos

    Sistemas operativos para sistemas integrados (o empotrados):

    Controlan disp. que usualmente no se ven como computadoras(microondas, TV, Automóviles, DVDs, ...)No aceptan software cargado por el usuario

    => no necesita protección (sólo se ejecuta SW confiable)Sistemas operativos para nodos de sensores:

    Pequeñas computadoras que se comunican entre sí y con una estaciónbase en forma inalámbricaEnergía provista por bateríaLargos períodos desatendidos y a la intemperie

    Sistemas operativos para tarjetas inteligentes:

    Severas restricciones de procesamiento y memoriaAlgunas funcionan sólo a inducción! Otras corren JVM

    Ej: QNX,VxWorks, Android, iOS,

    Windows CE, ...

    Ej: Tiny OS

    Tipos de Sistemas Operativos

    Sistemas operativos para sistemas integrados (o empotrados):

    Controlan disp. que usualmente no se ven como computadoras(microondas, TV, Automóviles, DVDs, ...)No aceptan software cargado por el usuario

    => no necesita protección (sólo se ejecuta SW confiable)Sistemas operativos para nodos de sensores:

    Pequeñas computadoras que se comunican entre sí y con una estaciónbase en forma inalámbricaEnergía provista por bateríaLargos períodos desatendidos y a la intemperie

    Sistemas operativos para tarjetas inteligentes:

    Severas restricciones de procesamiento y memoriaAlgunas funcionan sólo a inducción! Otras corren JVM

    Ej: QNX,VxWorks, Android, iOS,

    Windows CE, ...

    Ej: Tiny OS

    Revisión del Hardware de la Computadora

    El SO está íntimamente ligado al HW de la computadora.

    extiende el conjunto de instrucciones y

    maneja recursos

    => debe conocerlo detalladamente

    Revisión del HW: Procesadores

    Componente primario en la ejecución de las tareas de la comp.

    Ciclo básico:

    Cada CPU tiene un conjunto específico de instrucciones

    Posee registros de uso general para guardar resultadostemporales (memoria súper rápida, pero escasa)

    y registros especiales: Contador de programa (PC), Puntero de lapila (SP) estatus del programa (PSW).

    El SO debe conocer los registros: cada vez que cambia deactividad guarda los valores de los registros para continuarluego con la actividad pospuesta (ej: interrupciones, multiplexadodel tiempo)

    búsqueda decodificación ejecución

  • 8/17/2019 1-Introduccion Sistemas Operativos

    10/22

    Revisión del HW: Procesadores

    Para mejorar el desempeño se ejecutan varias instrucciones almismo tiempo:

    Problemas:

    Pipeline Superscalar

    ADD AX,BXBNZ 128LD BX,0

    ADD AX,BXLD BX,0

    Además:Multithreading / Hyperthreading / Multicore

    Revisión del HW: Procesadores

    La mayoría de las CPU modernas proveen:

    Modo kernel: todo el HW / conj. de instruc. disponibles

    Modo usuario: conj. de instruc. restringido y acceso limitado alHW (ej: no se permite E/S, protección de memoria).

    Del modo usuario se puede pasar al modo kernel a través de lasllamadas al sistema (system calls) que ejecutan la instrucción“TRAP”

    Cuando la llamada al sistema finaliza se vuelve a modo usuario

    La CPU puede “autoproducirse” TRAPs. Ej: división por 0, salirsedel rango de memoria.

    Revisión del HW: Memoria

    Idealmente: rapidísima, enorme y barata.

     Jerarquía de memoria:

    1 nsec

    2 nsec

    10 nsec

    10 msec

    100 sec

    < 1 KB

    4 MB

    2 a 4 GB

    350 GB

    800 GB

    Tiempo deacceso típico

    Capacidadtípica

      m   á  s  r   á  p   i   d  a

    m á  s  gr  an d  e

    Revisión del HW: Memoria

    Idealmente: rapidísima, enorme y barata.

     Jerarquía de memoria:Registros:

    32 x 32 bits o 64 x 64 bits

    extremadamente rápidos

    uno debe ser hábil para “quedarse” aquídentro el mayor tiempo posible-> tarea del compilador

  • 8/17/2019 1-Introduccion Sistemas Operativos

    11/22

    Revisión del HW: Memoria

    Idealmente: rapidísima, enorme y barata.

     Jerarquía de memoria:Cache:

    módulo intermedio entre CPU y memoria

    mejora el desempeño

    aprovecha la localidad espacial y temporalde los programas (loops!!)

    cache hit: se encuentra lo que se desea enla cache: !2 ciclos de reloj

    cache miss: no está en la cache y se debeir a buscarlo a memoria: mucho más tiempo

    hay varios niveles de cache

    Revisión del HW: Memoria

    Idealmente: rapidísima, enorme y barata.

     Jerarquía de memoria:

    Memoria principal:

    es la verdadera trabajadora en elsistema de memoriaúltima volátil en la jerarquía dememoria

    Revisión del HW: Memoria

    Idealmente: rapidísima, enorme y barata.

     Jerarquía de memoria: Discos magnéticos:

    2 órdenes de magnitud más grande que la memoria RAM

    3 órdenes de magnitud más lento que la memoria RAM(el disco es mecánico!!)

    organizado en pistas circulares concéntricas

    el conjunto de las pistas en la misma posición del brazoforman un cilindro

    cada pista se divide en sectores (usual. 512 bytes c/u)

    Revisión del HW: Memoria

    Idealmente: rapidísima, enorme y barata.

     Jerarquía de memoria:

    Cintas:

    se usan para backups

    Otras memorias:

    Flash (EEPROM)

    -> Memory sticks / Camaras digitales /...

    CMOS (batería, bajo consumo)

  • 8/17/2019 1-Introduccion Sistemas Operativos

    12/22

    Revisión del HW: Memoria

    Memoria principal

    multiplexión del espacio de memor ia obvio: para que un programa no afecte a los otros

    Reubicación -> más sutil: el progr. se compila como si tuviera toda lamemoria a su disposición comenzando por 0.

    2 soluciones:

    reubicación a tiempo de carga

    reubicación “on the fly” (en ejecución)

    Revisión del HW: Memoria

    Memoria principal

    multiplexión del espacio de memor ia obvio: para que un programa no afecte a los otros

    Reubicación -> más sutil: el progr. se compila como si tuviera toda lamemoria a su disposición comenzando por 0.

    2 soluciones:

    reubicación a tiempo de carga

    reubicación “on the fly” (en ejecución)

    buscar ymodificar todas las direcciones

    en el programa:factible pero costoso

    Revisión del HW: Memoria

    Memoria principal

    multiplexión del espacio de memor ia obvio: para que un programa no afecte a los otros

    Reubicación -> más sutil: el progr. se compila como si tuviera toda lamemoria a su disposición comenzando por 0.

    2 soluciones:

    reubicación a tiempo de carga

    reubicación “on the fly” (en ejecución)

    Reubicación “on the fly”:

    solución más simple.

    un registro base y

    uno límite por progr.:if dir < límite

    then base+direlse TRAP

    soluciona reubicación y

    protección

    la dirección que manipula

    el programa es la dirección virtual

    el dispositivo que mapea direcciones virtualesa direcciones físicas se denomina MMU(Memory Management Unit)

    Revisión del HW: Memoria

    Memoria principal

    multiplexión del espacio de memor ia obvio: para que un programa no afecte a los otros

    Reubicación -> más sutil: el progr. se compila como si tuviera toda lamemoria a su disposición comenzando por 0.

    2 soluciones:

    reubicación a tiempo de carga

    reubicación “on the fly” (en ejecución)

    Observaciones sobre el desempeño:

    La cache oculta la velocidad relativamente lenta de la memoria:

    Luego de ejecutar un rato, un programa inunda la cache con lainformación que este necesita para operar

    => buen desempeño

    Si el SO cambia la ejecución de un prog. a otro, la cache se debecargar con la info del nuevo programa

    => el desempeño se deteriora si los cambios son muy segui do

    Para cambiar de un programa a otro, los registros de la MMU debencambiarse.

    !El cambio de un programa a otro (cambio de contexto o context switch)puede ser muy caro.

    Hacer watch -n 1 cat /proc/stat

    y ver “ctxt”

  • 8/17/2019 1-Introduccion Sistemas Operativos

    13/22

    Revisión del HW: Dispositivos de E/S

    Consiste de 2 partes

    El controlador es una porción de hardware (un chip o un conj. dechips) que controla físicamente al dispositivo

    Acepta comandos del SO y los lleva a cabo.

    Brinda una interfaz más simple al SO (pero aún compleja).

    Por ej. acepta un comando para leer el sector 11206. Luego tendrá quetransformar esto en el cilindro, sector y cabezal correcto.

    El dispositivo propiamente dicho.Tienen interfaces simples estandarizadas. Ej: IDE, SCSI, USB, etc

    La interfaz del dispositivo está oculta detrás del controlador

    La parte del SO que envía comandos al controlador se denominadevice driver (manejador del dispositivo)

    El device driver se localiza habitualmente en el kernel.

    Tres maneras de incorporarlo: relink, reload, y “on the fly”

    El device driver se comunica con el controlador a través de registros

    Dos alternativas de mapeo de los registros:

    mapeados en memoria

    mapeados en E/S

    Ambas se deben realizar en modo kernel

    Tres modos de comunicación del device driver con el controlador:

    Polling

    Interrupciones

    DMA

    Revisión del HW: Dispositivos de E/S

    El device driver se comunica con el controlador a través de registros

    Dos alternativas de mapeo de los registros:

    mapeados en memoria

    mapeados en E/S

    Ambas se deben realizar en modo kernel

    Tres modos de comunicación del device driver con el controlador:

    Polling

    Interrupciones

    DMA

    Revisión del HW: Dispositivos de E/SUn espacio especial dentro

    del direccionamiento de memoria.El espacio especial nunca se asigna al

    usuario

    El device driver se comunica con el controlador a través de registros

    Dos alternativas de mapeo de los registros:

    mapeados en memoria

    mapeados en E/S

    Ambas se deben realizar en modo kernel

    Tres modos de comunicación del device driver con el controlador:

    Polling

    Interrupciones

    DMA

    Revisión del HW: Dispositivos de E/S

    Otro espacio dedireccionamiento ! dir. de memoria.

    Se accede con dos instrucciones especiales:in y out que sólo se pueden ejecutar en

    modo kernel

  • 8/17/2019 1-Introduccion Sistemas Operativos

    14/22

    El device driver se comunica con el controlador a través de registros

    Dos alternativas de mapeo de los registros:

    mapeados en memoria

    mapeados en E/S

    Ambas se deben realizar en modo kernel

    Tres modos de comunicación del device driver con el controlador:

    Polling

    Interrupciones

    DMA

    Revisión del HW: Dispositivos de E/S

    Un loop pregunta constantemente si eldispositivo está listo -> “Busy waiting”

    Bloquea la CPU => sólo es útil endispositivos dedicados

    El device driver se comunica con el controlador a través de registros

    Dos alternativas de mapeo de los registros:

    mapeados en memoria

    mapeados en E/S

    Ambas se deben realizar en modo kernel

    Tres modos de comunicación del device driver con el controlador:

    Polling

    Interrupciones

    DMA

    Revisión del HW: Dispositivos de E/S

    El driver inicia al dispositivo y espera a que éste leavise cuando haya finalizado

    En este punto el driver devuelve el control al SO y estebusca un nuevo trabajo para hacer

    => CPU y controlador trabajan en paralelo

    Cuando el controlador termina levanta la interrupción

    que actúa de aviso al driver

    El device driver se comunica con el controlador a través de registros

    Dos alternativas de mapeo de los registros:

    mapeados en memoria

    mapeados en E/S

    Ambas se deben realizar en modo kernel

    Tres modos de comunicación del device driver con el controlador:

    Polling

    Interrupciones

    DMA

    Revisión del HW: Dispositivos de E/S

    El driver inicia al dispositivo y espera a que éste leavise cuando haya finalizado

    En este punto el driver devuelve el control al SO y estebusca un nuevo trabajo para hacer

    => CPU y controlador trabajan en paralelo

    Cuando el controlador termina levanta la interrupciónque actúa de aviso al driver

    cat /proc/interrupts

    El device driver se comunica con el controlador a través de registros

    Dos alternativas de mapeo de los registros:

    mapeados en memoria

    mapeados en E/S

    Ambas se deben realizar en modo kernel

    Tres modos de comunicación del device driver con el controlador:

    Polling

    Interrupciones

    DMA

    Revisión del HW: Dispositivos de E/S

    Un chip e specífico que directamente transfierelos datos del dispositivo a memor ia (o al revés)

    Sin super visión constante de la CPU

    Ésta sólo indica qué, donde y cuanto

    El DMA usa los buses cuando la CPU no losutiliza

    Cuando el DMA finaliza le avisa a la CPU conuna interrupción

  • 8/17/2019 1-Introduccion Sistemas Operativos

    15/22

    Revisión del HW: Buses

    Organización original

    Revisión del HW: Buses

    Organización original

    En la actualidadhay mucha diferencia de

    velocidad entre las distintascomponentes

    Revisión del HW: Buses

    Posible organización contemporánea

    Revisión del HW: Buses

    Posible organización contemporánea

    L2(L1 es interna a la CPU)

  • 8/17/2019 1-Introduccion Sistemas Operativos

    16/22

    Revisión del HW: Buses

    Posible organización contemporánea

    > 100 MHzDDR SDRAM: 200 MHz

    Revisión del HW: Buses

    Posible organización contemporánea

    ISA:Original de IBM PC2 bytes a 8.33 MHz

    (16.67 MB/seg)Ya se está omitiendo

    Revisión del HW: Buses

    Posible organización contemporánea

    PCI:8 bytes a 66 MHz

    (528 MB/seg)

    PCIe: hasta16 GB/seg

    Revisión del HW: Buses

    Posible organización contemporánea

    IDE, tambiénParallel ATA:

    discos y CDROM

    Serial ATA (SATA):2.0 -> 384 MB/seg3.0 -> 768 MB/seg

  • 8/17/2019 1-Introduccion Sistemas Operativos

    17/22

  • 8/17/2019 1-Introduccion Sistemas Operativos

    18/22

    Procesos:

    Un proceso puede crearse o terminarse

    Ej:

    Conceptos de los Sistemas OperativosA través de

    system calls

    ffx

    sh$ firefox &

    Procesos:

    Un proceso puede crearse o terminarse

    Ej:

    Conceptos de los Sistemas OperativosA través de

    system calls

    gccffx

    sh$ firefox &$ gcc -o test test.c

    Procesos:

    Un proceso puede crearse o terminarse

    Ej:

    Conceptos de los Sistemas OperativosA través de

    system calls

    ffx

    sh$ firefox &$ gcc -o test test.c$

    Hacer:pstree

    Procesos:

    Un proceso puede crearse o terminarse

    Ej:

    Otras system calls relacionadas a procesos:solicitar más memoria / esperar que un proceso hijo termine / etc.

    Los procesos necesitan comunicarse para hacer tareas conjuntas:

    IPC (Inter processs communication)

    Ej: $ cat file1 | grep subject | lpr

    Conceptos de los Sistemas OperativosA través de

    system calls

    gccffx

    sh$ firefox &$ gcc -o test test.c$

    Hacer:pstree

  • 8/17/2019 1-Introduccion Sistemas Operativos

    19/22

     Deadlock (Interbloqueos):

    Conceptos de los Sistemas Operativos

    P1:

    get(scanner);

    get(printer);

    release(printer);

    release(scanner);

    P2:

    get(printer);

    get(scanner);

    release(printer);

    release(scanner);

    Deadlock potencial Deadlock real

     Deadlock (Interbloqueos):

    Conceptos de los Sistemas Operativos

    P1:

    get(scanner);

    get(printer);

    release(printer);

    release(scanner);

    P2:

    get(printer);

    get(scanner);

    release(printer);

    release(scanner);

    Deadlock potencial Deadlock real

     Deadlock (Interbloqueos):

    Conceptos de los Sistemas Operativos

    P1:

    get(scanner);

    get(printer);

    release(printer);

    release(scanner);

    P2:

    get(printer);

    get(scanner);

    release(printer);

    release(scanner);

    Manejo de memoria:

    El HW provee mecanismos para manejo de memoria (MMU)

    Muchos programas en la memoria al mismo tiempo => protección

    Debe manejar todo el espacio de direccionamiento de un proceso:

    aunque la memoria física sea menor o

    esté ocupada parcialmente por otros procesosLa CPU direcciona 232 o 264 bytes >> mem. física disponible

    Memoria virtual:

    El SO mantiene parte del espacio de direccionamiento enmemoria física y parte en disco

    El SO debe saber:

    donde está cada parte y

    cómo reemplazar (entre mem. física y disco)

    Conceptos de los Sistemas Operativos

  • 8/17/2019 1-Introduccion Sistemas Operativos

    20/22

    Archivos:

    Todo SO maneja archivos

    Funcionalidad importante del SO:Ocultar las peculiaridades de los discos y otros dispositivos de E/S ypresentar al programador un modelo abstracto de archivos que sea simpley prolijo e independiente del dispositivo subyacente

    Syscalls: crear, borrar, lee, escribir, ...

    Patrón transaccional heredado de las cintas (abrir / usar /cerrar)

    Otro concepto clave -> directorio

    Cada archivo en uso tiene asociado un “file descriptor”

    Concepto importante en UNIX: montado de sistemas de archivos

    Archivos especiales que muestran a los dispositivos como archivos

    Pipes

    Conceptos de los Sistemas Operativos

    Archivos:

    Todo SO maneja archivos

    Funcionalidad importante del SO:Ocultar las peculiaridades de los discos y otros dispositivos de E/S ypresentar al programador un modelo abstracto de archivos que sea simpley prolijo e independiente del dispositivo subyacente

    Syscalls: crear, borrar, lee, escribir, ...

    Patrón transaccional heredado de las cintas (abrir / usar /cerrar)

    Otro concepto clave -> directorio

    Cada archivo en uso tiene asociado un “file descriptor”

    Concepto importante en UNIX: montado de sistemas de archivos

    Archivos especiales que muestran a los dispositivos como archivos

    Pipes

    Conceptos de los Sistemas Operativos

    /Faculty/Prof.Brown/Courses/CS101/

    También relativo aldirectorio de trabajo:

    $ pwd

    Archivos:

    Todo SO maneja archivos

    Funcionalidad importante del SO:Ocultar las peculiaridades de los discos y otros dispositivos de E/S ypresentar al programador un modelo abstracto de archivos que sea simpley prolijo e independiente del dispositivo subyacente

    Syscalls: crear, borrar, lee, escribir, ...Patrón transaccional heredado de las cintas (abrir / usar /cerrar)

    Otro concepto clave -> directorio

    Cada archivo en uso tiene asociado un “file descriptor”

    Concepto importante en UNIX: montado de sistemas de archivos

    Archivos especiales que muestran a los dispositivos como archivos

    Pipes

    Conceptos de los Sistemas Operativos

    Cuando se abre el archivo

    -> retorna un entero llamado file descriptor

    Cuando se utiliza el archivo

    -> con el file descr iptor

    Cuando se cierra el archivo-> elimina el file descr iptor

    Archivos:

    Todo SO maneja archivos

    Funcionalidad importante del SO:Ocultar las peculiaridades de los discos y otros dispositivos de E/S ypresentar al programador un modelo abstracto de archivos que sea simpley prolijo e independiente del dispositivo subyacente

    Syscalls: crear, borrar, lee, escribir, ...Patrón transaccional heredado de las cintas (abrir / usar /cerrar)

    Otro concepto clave -> directorio

    Cada archivo en uso tiene asociado un “file descriptor”

    Concepto importante en UNIX: montado de sistemas de archivos

    Archivos especiales que muestran a los dispositivos como archivos

    Pipes

    Conceptos de los Sistemas Operativos

  • 8/17/2019 1-Introduccion Sistemas Operativos

    21/22

    Archivos:

    Todo SO maneja archivos

    Funcionalidad importante del SO:Ocultar las peculiaridades de los discos y otros dispositivos de E/S ypresentar al programador un modelo abstracto de archivos que sea simpley prolijo e independiente del dispositivo subyacente

    Syscalls: crear, borrar, lee, escribir, ...

    Patrón transaccional heredado de las cintas (abrir / usar /cerrar)

    Otro concepto clave -> directorio

    Cada archivo en uso tiene asociado un “file descriptor”

    Concepto importante en UNIX: montado de sistemas de archivos

    Archivos especiales que muestran a los dispositivos como archivos

    Pipes

    Conceptos de los Sistemas OperativosPermite eliminar la dependencia de los dispositivos:

    No más C:, E:, LPT1:, etc. 

    Archivos especiales que hacen que los dispositivos sevean como archivos:

    Ej: LPT1  -> /dev/lp0

    Pueden ser

    de bloque -> acceso aleatoriode carácter -> acceso secuencial

    Hacer:$ ls -l /dev

     y buscar los flags b y c

    Archivos:

    Todo SO maneja archivos

    Funcionalidad importante del SO:Ocultar las peculiaridades de los discos y otros dispositivos de E/S ypresentar al programador un modelo abstracto de archivos que sea simpley prolijo e independiente del dispositivo subyacente

    Syscalls: crear, borrar, lee, escribir, ...

    Patrón transaccional heredado de las cintas (abrir / usar /cerrar)

    Otro concepto clave -> directorio

    Cada archivo en uso tiene asociado un “file descriptor”

    Concepto importante en UNIX: montado de sistemas de archivos

    Archivos especiales que muestran a los dispositivos como archivos

    Pipes

    Conceptos de los Sistemas Operativos

    $ ls -l /dev | grep hda

    Entrada/Salida:

    Subsistema de E/S para manejar los dispositivos

    Cómo se agrupan en clases

    Seguridad:

    Fundamentos para proteger la información:

    Confidencialidad: sólo los usuarios con la autorización apropiadapueden ver los datos

    Integridad: sólo los usuarios con la autorización apropiadapueden modificar los datos

    Aparece en muchas partes. Ej: protección de memoria.

    En particular, en archivos: bits rwx

    Conceptos de los Sistemas Operativos

    Entrada/Salida:

    Subsistema de E/S para manejar los dispositivos

    Cómo se agrupan en clases

    Seguridad:

    Fundamentos para proteger la información:

    Confidencialidad: sólo los usuarios con la autorización apropiadapueden ver los datos

    Integridad: sólo los usuarios con la autorización apropiadapueden modificar los datos

    Aparece en muchas partes. Ej: protección de memoria.

    En particular, en archivos: bits rwx

    Conceptos de los Sistemas Operativos

    Hacer:$ ls -l

    y observarrwxr-x--x    }       } }   

    u g a

  • 8/17/2019 1-Introduccion Sistemas Operativos

    22/22

    Presentan la interface entre el Sist. Op. y los programas usuarios

    El conjunto de syscalls varía en cada Sist. Op.

    Hacer un syscall es muy dependiente de la máquina -> TRAP

    Se usan procedimientos de biblioteca que “envuelven” (wrap) las syscalls(libc, glibc)

    POSIX (estándar)

    -> UNIX, System V, Lnux, BSD,

      MINIX, Mac OSX

    Ej:

    read(fd, buffer, nbytes);

    Llamadas al sistema (System Calls) Llamadas al sistema (System Calls)

    Ejemplos:

    Llamadas al sistema (System Calls)

    Ejemplos: