SlideShare una empresa de Scribd logo
1 de 63
Sistemas Operativos I
            Tema 1
Introducción a los sistemas
        operativos
Objetivos
1. Presentar el concepto de sistema operativo.
2. Describir las funciones que debe llevar a cabo cualquier sistema
   operativo actual.
3. Dar una visión general de la historia de los sistemas operativos que
   ayudará a entender cuándo y por qué se introdujeron estas funciones
   en el sistema.
Un Sistema Operativo es un programa que actúa como intermediario entre el usuario y
el hardware de una computadora.

Propósito: Es ofrecer un ambiente en el que un usuario pueda ejecutar programas.
Objetivos:
Comodidad: Facilitar el uso de la máquina a los usuarios, proporcionando un
entorno cómodo para el desarrollo y
ejecución de programas y para el acceso a los recursos de la máquina.
Eficiencia: El s.o. debe administrar los recursos (hardware y software) de la
máquina de forma que se aprovechen de la manera más conveniente.
Cómo funciona un Sistema Operativo
Los sistemas operativos proporcionan una plataforma de software encima de la cual otros
programas, llamados aplicaciones, puedan funcionar. Las aplicaciones se programan para
que funcionen encima de un sistema operativo particular, por tanto, la elección del
sistema operativo determina en gran medida las aplicaciones que puedes utilizar.
Cómo se utiliza un Sistema Operativo
Un usuario normalmente interactúa con el sistema operativo a través de un sistema de
comandos, por ejemplo, el sistema operativo DOS contiene comandos como
copiar y pegar para copiar y pegar archivos respectivamente. Los comandos son aceptados y
ejecutados por una parte del sistema operativo llamada procesador de comandos o intérprete
de la línea de comandos. Las interfaces gráficas permiten que utilices los comandos
señalando y clickeando objetos que aparecen en la pantalla
                                              .
Un sistema de computo puede dividirse en cuatro componentes:




Definen las formas en que estos
recursos se utilizan para resolver
problemas de computo de los
usuarios
                                                              Proporcionan los recursos
                                                                 básicos de computo
El sistema operativo controla y coordina el uso del hardware entre los diversos programas
de aplicación para los diversos usuarios
Veamos que el S.O es un asignador de recursos (hardware y
software) que se requieren para resolver un problema : tiempo de
CPU, espacio de memoria, espacio de almacenamiento para
archivos, dispositivos de E/S etc. El S.O actúa como un
administrador de recursos y los asigna a programas y usuarios
específicos según sea necesario para la realización de tareas.
Generación Cero (década de 1940)
Los primeros sistemas computacionales no poseían sistemas operativos. Los usuarios tenían
completo acceso al lenguaje de la maquina. Todas las instrucciones eran codificadas a mano.

 Primera Generación (década de 1950) SISTEMAS POR LOTES
Las computadoras eran fisicamente enormes máquinas que se operaban desde una
consola. Los dispositivos de entrada comunes eran los lectores de tarjetas y unidades de
cinta. Los dispositivos de salida eran impresoras de línea, unidades de cinta y
perforadoras de tarjeta. El usuario no interactuaba con el computador, mas bien
preparaba el trabajo que consistía en el programa, los datos y la información de control y
lo entregaba al operador de la máquina. En algún momento posterior (minutos, horas o
días)aparecía la salida que era el resultado del programa así como un vaciado de la
memoria y los registros en caso de errores en el programa.

El S.O era bien simple , su tarea era transferir automáticamente el control de un trabajo al
siguiente. El sistema operativo siempre estaba residente en memoria.
Para acelerar el procesamiento los operadores los agrupaban en lotes los trabajos con
necesidades similares y los ejecutaban en la Pc como un grupo
Segunda Generación (a mitad de la década de 1960)
La característica de los sistemas operativos fue el desarrollo de los sistemas compartidos o mutitarea con
multiprogramación, y los principios del multiprocesamiento.
Un Sistema operativo de tiempo compartido permite a varios usuarios compartir la computadora
simultáneamente. Debido a que cada acción o comando en un sistema de tiempo compartido tiende a
ser corta, se necesita un poco de tiempo de CPU para cada usuario. Como el sistema cambia rápido de
un usuario al siguiente , el usuario tiene la impresión de que todo el sistema de computo está dedicado a
el .
Un S.O de tiempo compartido hace uso de la planificación de la CPU y la multiprogramación para
proporcionar a cada usuario una pequeña porción de una computadora.

La gestión por parte del SO se centra en el concepto de proceso.
Un proceso es un programa en el que se ha iniciado su ejecución.
Por lo tanto un programa es un ente pasivo mientras que un proceso es un ente activo.
RESUMEN
Los sistemas operativos se han desarrollado en los últimos 40 años por dos razones
principales:

1. Planificar las actividades computacionales y lograr un buen desempeño del sistema en si.
2. Proporcionar un ambiente adecuado para el desarrollo y ejecución de programas.

Los sistemas por lotes permitieron la ejecución secuencial automática de trabajos mediante
un S.O residente, la computadora ya no tenia que esperar mas la operación humana, sin
embargo la utilización de la CPU todavía era reducida, debido a la baja velocidad de los
dispositivos de E/S.
Para mejorar el desempeño global del sistema de computo, se introdujo la multiprogramación,
que permitía que varios trabajos se mantengan en memoria. La CPU se conmuta entre ellos
para incrementar la ocupación del procesador.

La multiprogramación se desarrolló para mejorar el rendimiento, también posibilita el tiempo
compartido, estos sistemas permiten que los usuarios utilicen al mismo tiempo un sistema de
computo de manera interactiva.

Los Pc son menos costosas que los mainframes , las computadoras personales se han
beneficiado del desarrollo de los Sistemas Operativos para equipos grandes , sin embargo,
debido a que un usuario puede usar en exclusivo una computadora, La utilización de la CPU ya
no es una preocupación principal y por lo tanto el diseño y consideraciones que se toman para
sistemas operativos mainframes no son apropiados para sistemas pequeños.
RESUMEN
Los sistemas paralelos tienen mas de una CPU en estrecha comunicación los mismas
que comparten memoria, bus y dispositivos de E/S.
Estos sistemas utilizan el multiprocesamiento simétrico en el que cada procesador
ejecuta una copia idéntica del S.O y además se le asigna una tarea específica y todos los
procesadores están al mismo nivel.
En otro esquema un procesador llamado maestro controla el sistema, los restantes
procesadores solicitan instrucciones , esta relación define una relación maestro-esclavo.
Los sistemas paralelos proporcionan un mayor rendimiento y una mejor confiabilidad.

Un sistema operativo estricto de tiempo real controla una aplicación dedicada y tiene
restricciones de tiempo fijas y bien definidas, esto implica que el procesamiento debe
realizarse dentro de estas restricciones, o de lo contrario el sistema fallará.

La Influencia del Internet ha impulsado el desarrollo de sistemas operativos modernos
que incluyen navegadores y software para redes y comunicación como características
integrales .

Se ha visto que avance lógico de los Sistemas Operativos impulsado por la inclusión de
características de hardware de la CPU Esta tendencia se puede ver hoy en la evolución
delas PC en donde se está mejorando un hardware de bajo precio de manera suficiente
para permitir, a su vez, características mejoradas.
ARQUITECTURA DE UN COMPUTADOR
Todo PC tiene, como parte fundamental de su
                                           arquitectura, al menos un procesador. En su interior se
                                           encuentran una serie de elementos básicos tales como
                                           registros (capaces de almacenar pequeñas cantidades de
                                           información), unidad aritmético-lógica o UAL (capaz de
                                           realizar simples operaciones aritméticas), unidad de
                                           control, etc. Este procesador se comunica con el resto del
                                           ordenador a través de lo que denominaremos el bus del
                                           sistema.




La comunicación entre el procesador y el resto del equipo se puede dividir a su vez en dos categorías: la
conexión con la memoria (también llamada memoria principal o memoria RAM), y la conexión con los
dispositivos de entrada salida (E/S). El circuito representado en esta figura por el nombre Puente E/S es
el encargado de separar los datos de estas categorías. La conexión con la memoria RAM se realiza a
través del bus de memoria. Esta memoria es capaz de almacenar información mientras el equipo esté
encendido. Al apagar el equipo, los datos almacenados en este dispositivo se pierden, por este motivo,
también se le conoce como memoria volátil.
Los datos dirigidos a los dispositivos de entrada/salida se
                                     envían a través del bus de entrada/salida (o bus E/S). Este
                                     bus se utiliza para conectar todos los dispositivos
                                     auxiliares que necesita el ordenador para su
                                     funcionamiento. Dichos dispositivos no se conectan
                                     directamente el bus, sino a un circuito encargado de
                                     gestionar su comunicación denominado “controlador”.




Una de las características que ha contribuido a que esta arquitectura haya alcanzado un nivel
tan alto de popularidad es la posibilidad de conectar de forma sencilla dispositivos
adicionales. El bus de entrada/salida está preparado para conectar más dispositivos y así
dotar al Pc de mayor capacidad. De esta forma, el Pc se puede completar con una impresora,
un scanner, discos duros adicionales, lector/grabador de DVDs, etc. La mayoría de estos
dispositivos se conectan al Pc a través de conectores específicamente incluidos a tal efecto
(tal es el caso de la conexión de una impresora al puerto paralelo) o a través de las clavijas de
expansión.
FUNCIONES

Las funciones clásicas en un sistemas Operativo se
agrupan en tres categorías:
1. Gestión de los recursos de la computadora
2. Ejecución de los servicios para los programas
3. Ejecución de los mandatos de los usuarios




El S.O está formado por tres capas.
Núcleo (kernel) Que es la que gestiona los recursos de hardware del sistema y la que suministra la funcionalidad
básica del sistemas operativo.
Servicios o llamadas al Sistema Ofrece a los programas unos servicios en forma de interfaz API , desde el punto de
vista de los programas , esta capa extiende la funcionalidad de la computadora , por lo que se dice que el S.O
ofrece una máquina virtual extendida a los programas.
Interprete de Comandos Shell Suministra una interfaz a través de la cual el usuario puede dialogar de forma
interactiva con la computadora. Esta capa recibe los mandatos de usuario, los interpreta y, si puede los ejecuta .
FUNCIONES DEL SISTEMA OPERATIVO

1.- Gestor de recursos: En un computador los programas
en ejecución deben compartir los recursos disponibles que
sonlimitados (CPU, memoria, dispositivos de E/S, etc.). El
s.o.establece la política que determina a quién, cuándo,
cuánto tiempo y la cantidad de recurso que asigna.
EL S.O. COMO GESTOR DE RECURSOS

ASIGNACIÓN DE RECURSOS Para este propósito debe mantener estructuras que le permitan saber
que recursos están libres y cuáles están asignados a cada programa. La asignación se realiza según
la disponibilidad de los mismos y la prioridad de los programas.
También hace la recuperación de recursos cuando ya no son necesitados. Una mala recuperación
puede hacer que el sistema operativo considere por ejemplo que ya no le quede memoria
disponible cuando en realidad si la tiene.

Protección Ha de garantizar la protección entre los usuarios del sistema, para esto impide que
algunos programas accedan a los recursos asignados a otros programas.

Contabilidad Mide la cantidad de recursos que, a lo largo de su ejecución utiliza cada programa.
De esta forma se puede conocer la carga de utilización que tiene cada recursos y se puede imputar
a cada usuario los recursos que ha utilizado.
FUNCIONES DEL SISTEMA
                OPERATIVO

2.- Máquina extendida: Los recursos hardware son
difíciles de manejar y programar (especialmente la E/S).
El s.o. debe ocultar la complejidad del hardware y
proporcionar una interfaz sencilla de utilizar.
EL SISTEMA OPERATIVO COMO MAQUINA EXTENDIDA

El S.O ofrece a los programas un conjuntos de servicios o llamadas del sistema que pueden solicitar cuando lo
necesiten, proporcionando a los programas una visión de máquina extendida..
Los servicios se pueden agrupar en 4 clases:

1.   Ejecución de programas..- Existen servicios para lanzar la ejecución asi como para pararla y abortarla,
     también existen servicios para conocer y modificar las condiciones de ejecución, para sincronizar comunicar
     unos programas con otros.
     La ejecución de programas da lugar al concepto de proceso, que puede ser definido como un programa en
     ejecución. Para que un programa pueda ser convertirse en un proceso ha de estar traducido a código de
     máquina y almacenado en un dispositivo de almacenamiento.
Es importante diferenciar entre proceso y programa:
• Programa: Lista de instrucciones. Ente pasivo. Se almacena en ficheros.
• Proceso: Ejecución de un programa. Ente activo. La ejecución de un programa requiere que éste se
  cargue, previamente, en memoria.
EL SISTEMA OPERATIVO COMO MAQUINA EXTENDIDA

2. Ordenes de E/S.- Estos servicios ofrecen una gran comodidad y protección al proveer a los
   programas de operaciones de lectura, escritura y modificación del estado de los periféricos.
   Las operaciones de E/S son complejas y dependiente del hardware específico del periférico.
3. Operaciones sobre archivos.- Los archivos ofrecen un mayor nivel de abstracción que las
   ordenes de E/S permitiendo operaciones como creación, borrado, renombrado, apertura,
   escritura y lectura de archivos.
4. Detección y tratamiento de errores.- Además de analizar todas las ordenes que recibe, para
   comprobar que se pueden realizar, el S.O se encarga de tratar todas las condiciones de error
   que detecte el hardware. Entre las condiciones de error d que pueden aparecer podemos
   mencionar los siguientes:
    a) Errores en las operaciones de E/S
    b) Errores de paridad en los accesos a memoria o en los buses
    c) Errores de ejecución en los programas como desbordamientos, violaciones de memoria,
         códigos de instrucción prohibidas, etc.
EL SISTEMA OPERATIVO COMO INTERFAZ DE USUARIO


Cuando un usuario introduce una orden en un ordenador, ésta es captada por el intérprete de comandos (shell). El
intérprete se encarga de traducir o descomponer la orden en llamadas al sistema.
El Shell se comporta como un bucle infinito que está repitiendo constantemente la siguiente secuencia:
• Espera una orden del usuario. En el caso de interfaz textual el shell está pendiente de lo que escribe el usuario.
    En las interfaces gráficas está pendiente de los eventos del apuntador (mouse).
• Analiza la orden y, en caso de ser correcta la ejecuta para lo cual emplea los servicios del S.O.




Casi todos los interpretes de ordenes pueden ejecutar archivos de mandatos llamados shell scripts , estos
archivos incluyen varios mandatos totalmente equivalentes a los mandatos que se introducen en le terminal.
Además para realizar funciones complejas pueden incluir mandatos especiales de control de flujo de ejecución
como por ej, el goto, for e el if .
ARRANQUE DE LA COMPUTADORA
El arranque de una computadora tiene 2 fases: la de arranque hardware y la del sistema operativo.
                                                  Arranque Hardware
Las computadoras antiguas tenían una serie de conmutadoras que permitían introducir una a una palabras en la
memoria principal en los registros. El usuario debía introducir a mano y en binario un primer programa que permitiese
cargar otros programas almacenados en algún soporte, como la cinta de papel.




 En la figura podemos observar que una parte del mapa de memoria está construido con memoria ROM no volátil en
 esta se encuentra un programa de arranque está siempre disponible le, puesto que la ROM no pierde su contenido.
 Lo que le llamaremos Iniciador ROM
 Al encender la computadora o presionar RESET se genera una señal eléctrica para cargar valores predefinidos en los
 registros, esta señal carga en el CP (contador de programa) la dirección de comienzo del iniciador ROM
                                            FUNCIONES DEL INICIADOR ROM
 1. Hacer una comprobación del sistema que sirve para detectar sus características, memoria, dispositivos
      conectados, etc, una vez pasada la comprobación entra a la fase de:
 2. Lectura y almacenamiento en memoria del programa cargador del S.O
 3. Da el control a este programa, bifurcando a la dirección de memoria en la que lo ha almacenado.

 Nota.- Para tener una mayor flexibilidad se hace que el Iniciador Rom sea independiente del sistema operativo
ARRANQUE DEL SISTEMA OPERATIVO

                                                    Boot del sistema que está almacenado en una en una
                                                    zona predefinida del disco




El programa cargador del S.O tiene por misión traer a memoria principal algunos de los componentes del Sistema
Operativo. Una vez en memoria se pasa a la fase de iniciación que incluye las siguientes operaciones: :
• Comprobación del Sistema Completamiento del hardware realizados por el ………… y se comprueba que el sistema
    de archivos tengan coherencia.
• Se establece las estructuras de información propias del S.O tales como tablas de procesos, tablas de memoria y las
    de E/S
• Se carga a memoria aquella parte del S.O que ha de estar siempre en memoria , a la que se le denomina Sistema
    Operativo Residente
• Se crea un proceso de inicio o LOGIN para cada terminal definido en el sistema.
COMPONENTES Y ESTRUCTURA DE UN SISTEMA OPERATIVO
interfaz de servicios en la que los programas deben elegir
con cual quieren ejecutar




    El Núcleo es el que interacciona directamente con el hardware, las funciones de este se centran en la gestión de
    recursos como el procesador, tratamiento de interrupciones y las funciones básicas del manipulación de memoria.
    Los Servicios se suelen agrupar de acuerdo a su funcionalidad:
    Gestión de Procesos.- Encargada de la creación, planificación y destrucción de procesos
    Gestión de Memoria.- Encargada de saber que partes de memoria están libres y cuales ocupadas, así como la
    asignación y liberación según la necesiten los recursos.
    Gestión de E/S.- Facilitar el uso de los dispositivos periféricos
    Gestión de Archivos.- Manejo de archivos y directorios y de la administración del almacenamiento secundario
    Comunicación y Sincronización entre procesos.- Encargada de ofrecer mecanismos para que los procesos puedan
    comunicarse y sincronizarse.
    Seguridad y Protección.- Se encargará de garantizar la identidad de los usuarios y de definir lo que pueden hacer
    cada uno de ellos con los recursos del sistema.
ESTRUCTURA DEL SISTEMA OPERATIVO
                                         SISTEMAS OPERATIVOS MONOLITICOS
  No tienen una estructura bien clara definida , todos sus componentes se encuentran integrados en un único
  programa que ejecuta en un único espacio de direcciones , todas las funciones que ofrece el sistema operativo se
  ejecutan en modo núcleo. (programas sencillos)
  El problema que plantean es en lo complicado que es modificar el S.O para añadir nuevas funcionalidades y
  servicios, lo que implica la modificación de un gran programa compuesto por miles de líneas de código fuente y
  funciones, cada una de las cuales puede invocar a otra cuando así lo requiera.

                                       SISTEMAS OPERATIVOS ESTRUCTURADOS



                               Capa 5 Programa de usuario
                               Capa 4 Gestión de la E/S
                               Capa 3 Controlador de consola
                               Capa 2 Gestión de memoria
                               Capa 1 Planif. CPU y multiprogramac.
                               Capa 0 Hardware

El S.O se organiza como una jerarquía de capas , donde cada capa ofrece una interfaz clara y bien definida a la capa
superior y solamente utiliza los servicios que le ofrece la capa inferior.
Su principal ventaja es la modularidad y la ocultación de la información , la capa superior no necesita conocer como se
ha implementado la capa anterior, solo conoce la interfaz que ofrece, lo que facilita que las capas se pueden ir
construyendo y depurando por separado
CLIENTE SERVIDOR




Este tipo de modelo consiste en implementar la mayor parte de los servicios y funciones del S.O en procesos de
usuario, dejando solo una pequeña parte del sistema operativo ejecutando en modo núcleo conocido a esto como
micro núcleo y a los procesos que ejecutan el resto de funciones se les denomina Servidores

La gran ventaja de este modelo es la gran flexibilidad que presenta. Cada proceso servidor solo se ocupa de una
funcionalidad concreta, lo que hace que cada pate pueda ser pequeña y manejable Este tipo a su vez facilita el
desarrollo y depuración de cada uno de los procesos servidores.
En cuanto a la desventaja se pueden citar que estos sistemas presentan una mayor sobrecarga en el tratamiento de
los servicios que los sistemas monolíticos. Esto se debe a que los distintos componentes de un sistema operativo de
este tipo ejecutan en espacios de direcciones distintos, lo que hace que su activación requiera mas tiempo.
Un programa no es mas que un conjunto de instrucciones , mientras que el proceso surge cuando un programa se pone
en ejecución. Esto hace que varios procesos puedan ejecutar al mismo programa ala vez. Ej. Varios usuarios estén
ejecutando el mismo editor de textos.
Un solo usuario no puede por lo general mantener a la CPU o a los dispositivos de E/S
ocupados en todo momento . La Multiprogramación incrementa el uso de la CPU
organizando los trabajos de tal manera que la CPU siempre tenga alguno por ejecutar .

La idea es que el S.O mantiene simultáneamente varios trabajos en la memoria



                                                      El sistema operativo toma y
                                                      comienza a ejecutar uno de los
                                                      trabajos que están en la memoria .
                                                      En ocasiones el trabajo tiene que
                                                      esperar a que se complete alguna
                                                      tarea entonces el S.O simplemente
                                                      cambia a otro trabajo, con el tiempo
                                                      el primer trabajo termina su espera
                                                      y vuelve de nuevo a la CPU
ELEMENTOS DE UN PROCESO

Al   contenido de los segmentos de
memoria en los que reside el código y los
datos del proceso se      le denomina:
IMAGEN DE MEMORIA




                                                           Durante la ejecución el proceso va modificando los registros del modelo
                                                           de programación de la computadora de acuerdo a las instrucciones de
                                                           máquina presentes.. A este contenido de los registros del modelo de
                                                           programación se lo conoce como ESTADO DEL PROCESADOR


El S.O mantiene por cada proceso una serie de estructuras de información que permite identificar las características de
éste así como los recursos asignados Una parte muy importante de esta estructura es el BLOQUE DE CONTROL DEL
PROCESO (BCP)

El sistema operativo debe encargarse también de ofrecer una serie de servicios para la gestión de procesos y de
gestionar los posibles interbloqueos que surgen cuando los procesos acceden a diferentes recursos.
Dependiendo del numero de procesos y de usuarios que pueden ejecutar simultáneamente, un Sistema Operativo
puede ser :
Monotarea
Multitarea
Monousuario
Multiusuario
También llamado Monoproceso permiten que exista un proceso en cada instante




            O Multiproceso , permite que exista varios procesos a la vez . El S.O
            se encarga de ir repartiendo el tiempo del procesador entre estos
            procesos




         Está previsto para soportar a un solo usuario




                         Soporta varios usuarios trabajando simultáneamente desde varias
                         terminales . A su vez cada usuario puede tener activo más de 1
                         proceso , por lo que debe ser también el sistema Multitarea .
                         También reciben el nombre de Tiempo Compartido porque ha de
                         repartir el tiempo de la computadora entre los usuarios para procesar
                         cada una de las tareas de los usuarios
El sistema operativo ofrece una serie de servicios que permiten definir la vida de un proceso; y está constituido por
las siguientes fases: Creación Ejecución y muerte de un proceso:
Crear un Proceso
El proceso es creado por el S.O cuando así lo solicita otro proceso, que se convierte en el padre del nuevo. Existen 2
modalidades para crear un proceso:
             Creación a partir de un procesos padre
             Creación a partir de un archivo ejecutable Esta modalidad es la que se define en el API WIN 32
Ejecutar un Proceso
Se pueden ejecutar de 2 formas : batch e interactiva
En batch también llamado backcground no está asociado a ningún terminal, deberá tomar sus datos de entrada de
un archivo y deberá depositar sus resultados en otro archivo, Un ejemplo típico de esta forma es un proceso de
nominas que parte de un archivo de empleados y del archivo de los partes de trabajo y genera un archivo de
ordenes bancarias.
En Interactivo está asociado a un terminal, por el que recibe la información del usuario y por el que contesta con los
resultados, un ejemplo de este tipo es un proceso de edición.

Terminar la Ejecución de un Proceso
Un proceso puede terminar su ejecución por varias causas de entre las principales están:
             Ha terminado de ejecutar el programa
             Se produce una condición de error pj. División por 0 o violación de memoria
             Otro proceso o el usuario deciden que ha de terminar.
Cambiar el programa de un proceso
Algunos S.O tienen un servicio que cambia el programa que está ejecutando un proceso por otro programa
almacenado en disco. Esta operación no consiste en crear uno nuevo que ejecuta ese nuevo programa, Se trata de
eliminar el programa que está ejecutando el proceso y de incluir el nuevo programa que se trae del disco.
Gestión de la memoria
La gestión de memoria se encuentra normalmente asociada a la gestión de
procesos: para ejecutar un proceso es necesario asignarle memoria y
cargarlo en ella; cuando finaliza su ejecución, la memoria debe ser liberada.

Problemática para la gestión de memoria

?Aislamiento del proceso: Cada proceso debe tener una zona de memoria
independiente que no puede ser interferida por otros procesos.
?Asignación de la memoria: Llevar el control de las zonas de memoria libres y
ocupadas y la zona de memoria asignada a cada proceso.
?Memoria virtual: Técnica que permite direccionar la memoria desde un punto de
vista lógico, sin depender del tamaño o la ubicación de la zona de memoria que
finalmente se asigne al proceso.
?   Funciones de gestión de memoria: La gestión de memoria es
transparente al programador: la asignación y la liberación se hacen
automáticamente con la creación y eliminación de procesos.
SERVICIOS EN LA GESTION DE LA MEMORIA


SOLICITAR MEMORIA
Este servicio aumenta el espacio de datos de la imagen de memoria del proceso. El sistema operativo
satisfará la petición siempre y cuando cuente con los recursos necesarios para ello. En general el
sistema operativo devuelve un apuntador con la dirección de la nueva memoria. El programa utilizará
este nuevo espacio a través del mencionado apuntador.
LIBERAR MEMORIA
Este servicio sirve para devolver trozos de la memoria del proceso. El S.O recupera el recurso
liberado y lo añade a sus listas de recursos libres.
COMPARTIR MEMORIA
El gestor de memoria se encarga de servicios que periten que los procesos puedan comunicarse
utilizando un segmento de memoria compartida Para ello se permite que los procesos creen y
liberen este tipo de segmentos.
COMUNICACIÓN Y SINCRONIZACION DE PROCESOS

Los procesos son entes independientes y aislados que por razones de seguridad no deben interferir unos con otros.
Sin embargo cuando se divide un trabajo complejo en varios proceso que cooperan entre si para realizar ese trabajo,
es necesario que se comuniquen para transmitirse datos y ordenes y se sincronicen para ejecutar acciones, por lo
tanto el S.O debe incluir estos servicios .
El S.O ofrece una serie de mecanismos básicos de comunicación que permiten transferir cadenas de bytes, pero
deben existir la coordinación entre procesos para interpretar esas cadenas de bytes transferidas

Dependiendo el servicio utilizado, la comunicación se limita a los procesos de una máquina (procesos locales) o
puede involucrar a proceso de maquinas distintas (procesos remotos)




          Proceso                 Proceso                     Proceso                  Proceso
         de Usuario              de Usuario                  de Usuario               de Usuario




                         SO                                      SO                       SO


                UN COMPUTADOR                                      DOS COMPUTADORES
SERVICIOS COMUNICACIÓN Y SINCRONIZACION DE PROCESOS




1.     CREACION DEL MECANISMO
2.     UTILIZACION DEL MECANISMO
3.     DESTRUCCION DEL MECANISMO




     De acuerdo con esto, los servicios básicos de comunicación que incluyen todos los mecanismos de comunicación
     son:
     • Crear Permite que le proceso solicite la creación del mecanismos
     • Enviar o Escribir Permite que el proceso emisor envíe información a otro
     • Recibir o Leer Permite que el proceso receptor reciba información de otro
     • Destruir Permite que el proceso solicite la creación o destrucción del mecanismo.
     En una comunicación síncrona los dos procesos han de ejecutar los servicios de comunicación al mismo tiempo, es decir
     el emisor ha de estar en el servicio de enviar y el receptor ha de estar en el servicio de recibir , para que esto ocurra , uno
     de ellos ha de esperar a que el otro llegue a la ejecución del correspondiente servicio.
     En una comunicación asíncrona el emisor o tiene que esperar a que el receptor solicite el servicio recibir , hace el envío
     y sigue con la ejecución , esto hace que el S.O establezca un almacenamiento intermedio para guardar la información
     hasta que el receptor la solicite

     Los mecanismos de sincronización suelen utilizar los siguientes servicios: Crear, Bloquear, Despertar, Destruir
GESTION DE LAS UNIDADES DE E/S
El Gestor de E/S controla el funcionamiento de
todos los dispositivos de E/S para alcanzar los
siguientes objetivos:
1. Facilitar el manejo de dispositivos periféricos,
     por lo que debe ofrecer una interfaz sencilla y
     fácil de utilizar entre los dispositivos y
     gestionar los errores que se pueden producir
     en el acceso a los mismos
2. Ofrecer mecanismos de protección que
     impidan a los usuarios acceder sin control a los
     dispositivos periféricos.
SERVICIOS
El S.O ofrece una serie de servicios de E/S
independiente de los dispositivos , esto implica
que debe emplearse los mismos servicios y
operaciones de E/S para leer . Ejem datos de un
disquete , de un disco duro o de un teclado.
Los servicios de E/S están dirigidos básicamente a
la lectura y escritura de datos .
Estos servicios pueden estar orientados a
caracteres como ocurre con las impresoras o los
terminales o pueden estar orientadas a bloques
como ocurre con las unidades de disco .
GESTION DE ARCHIVOS Y DIRECTORIOS

El servidor de archivos es la parte del sistema operativo que cubre una de las cuatro clases de funciones que tiene éste
en su faceta de máquina extendida.
Los objetivos fundamentales del servidor de archivos son:
• Facilitar el manejo de los dispositivos periféricos Para ello ofrece una visión lógica simplificada de los mismos en
    forma de archivos
• Proteger a los usuarios, poniendo limitaciones a los archivos que es capaz de manipular cada usuario.



                                                                              Los servicios en el servidor de archivos
                                                                              son de dos tipos:
                                                                              1. Los servicios dirigidos al manejo de
                                                                                   datos o archivos
                                                                              2. Los dirigidos al manejo de los
                                                                                   nombres o directorios.
                                                                              El servidor de archivos ofrece al usuario
                                                                              una visión lógica compuesta por una
                                                                              serie de objetos…. Identificables por un
                                                                              nombre lógico sobre los que se pueden
                                                                              realizar una serie de operaciones.

                                                                              La visión física ha de incluir los detalles
                                                                              de como están almacenados estos
                                                                              objetos          en     los     periféricos
                                                                              correspondientes.
SERVICIO DE ARCHIVOS
Un archivo es una unidad de almacenamiento lógico no volátil que agrupa un conjunto de información relacionada
entre si bajo un mismo nombre. Cada archivo tiene una información asociada que utilizan tanto los usuarios como el
propio servidor de archivos.
Entre las informaciones mas usuales se pueden destacar las siguientes:
• Tipo de Archivo Ej. Archivo de datos , ejecutables, etc
• Propietario del archivo Identificador de usuario que creó
• Tamaño del Archivo. Este tamaño suel e ser menor que el espacio de disco asignado al archivo
• Instantes (fecha hora)importantes en la vida de un archivo como son los siguientes:
       • Instante en que se creó
       • Instante de la última modificación
       • Instante del último acceso
• Derechos de acceso al archivo (lectura, lectura-escritura, solo escritura, ejecución, etc




  Las operaciones sobre archivos que ofrece el servidor de archivos están referidas a la visión lógica de los archivos .
  Una solución común es que el archivo se v visualice como un vector de bytes o caracteres
  Esta visión lógica incluye normalmente un puntero de posición. Este puntero permite hacer operaciones de lectura
  y escritura consecutivas sin tener que indicar la posición de la operación
SERVICIO DE ARCHIVOS




La visión física está formada por los elementos físicos del periférico que soportan el archivo. En el caso más común de
tratarse de discos , la visión física consiste en la enumeración ordenada de los bloques de disco en los que reside el
archivo
SERVICIO DE ARCHIVOS
Un archivo es una entidad viva, que va evolucionando de acuerdo a los servicios que se solicitan del S.O su fase de
vida es la siguiente:
• Se crea el archivo
       • Se abre: se genera un descriptor de archivo
            • Se escribe y lee (El archivo puede crecer)
• Se cierra . Se borra
Los servicios que ofrece el Servidor de Archivos son:
CREAR UN ARCHIVO
Se crea un archivo vacío esta creación exige una interpretación del nombre, puesto que el servidor de archivos ha de
comprobar que el nombre es correcto y que el usuario pueda hacer la operación solicitada.
ABRIR UN ARCHIVO
Este servicio comprueba que el archivo exista , que el usuario tiene derechos de acceso y trae a memoria información
del objeto para optimizar el acceso al mismo, además devuelve al usuario un manejador de archivo temporal para su
manipulación .
ESCRIBIR Y LEER
Este servicios se realiza utilizando el identificador o manejador devuelto en las operaciones anteriores.
Una operación de lectura permite trae datos del archivo a memoria, para ello se especifica el identificador, la posición
de memoria y la cantidad de información a leer .
Las operaciones de escritura permiten llevar datos situados en memoria al archivo, para ello y al igual que en las
operaciones de lectura se debe especificar el identificador obtenido en las operaciones de creación o apertura , la
posición de memoria y la cantidad de información a escribir.
CERRAR UN ARCHIVO
Terminado la utilización de un archivo se debe cerrar, con lo que se elimina el identificador temporal y de esta forma
se liberan los recursos de memoria
BORRAR UN ARCHIVO
El archivo se puede borrar lo que supone que se borra su nombre del directorio y que el sistema de archivos ha de
recuperar los bloques de datos y el espacio que tenía asignado.
SERVICIO DE DIRECTORIOS

Un directorio es un objeto que relaciona de forma univoca un nombre con un archivo. El servicio de directorios sirve
para identificar a los archivos, por tanto ha de garantizar que la relación (nombre-archivo) sea unívoca, es decir un
mismo nombre no puede identificar a dos archivos , por el contrario observe que varios nombres se refieren al mismo
archivo en este caso son simples sinónimos.


                                                            ESQUEMA GERARQUICO DE NOMBRES (Visión Lógica)




Se diferencia el nombre relativo o local que es el nombre asignando al archivo dentro del subdirectorio en el que
esta el nombre del archivo ej. “Ap11”
Del nombre o camino absoluto que incluye todos los nombres de todos los subdirectorios que hay que recorrer
desde el directorio raíz hasta el objeto ej. “/Textos/Tipo/Sec1/Ap11”

VISION FISICA
Consiste en unas estructuras de información que permiten relacionar cada nombre lógico con la descripción física del
archivo , En definitiva se trata de una tabla NOMBRE-IDENTIFICADOR por cada subdirectorio . El NOMBRE no es mas
que el nombre relativo del archivo , mientras que el IDENTIFICADOR es una información que permite localizar la
descripción física del archivo.
SERVICIO DE DIRECTORIOS


Un objeto directorio es básicamente un conjunto de entradas que relacionan nombres y archivos. El servidor de
archivos incluye una serie de servicios que permiten manipular directorios. Estos son:
CREAR UN DIRECTORIO
Crea un objeto directorio y lo sitúa en el árbol de directorios donde se especifique en el nombre , absoluto o relativo,
del nuevo directorio.
BORRAR UN DIRECTORIO
Elimina un objeto directorio de forma que nunca mas pueda ser accesible y borra su entrada del árbol de directorios.
Normalmente solo se puede borrar un directorio vacío , es decir un directorio sin entradas.
ABRIR UN DIRECTORIO
Abre un directorio para leer los datos del mismo, Un directorio debe ser abierto para poder acceder a su contenido.
Esta operación devuelve al usuario un identificador , descriptor o manejador temporal que permite su
manipulación
LEER UN DIRECTORIO
Extrae la siguiente entrada de un directorio, abierto previamente , devuelve una estructura de datos como la que
define la entrada de directorios.
CERRAR UN DIRECTORIO
Cierra un directorio, liberando el identificador devuelto en la operación de apertura, así como los recursos de
memoria .
FASES DE ACTIVACION DE UN SISTEMA OPERATIVO

  El S.O es un servidor que esta a la espera de que se le encargue trabajo La secuencia normal es mostrada en la
  siguiente figura:
                                                           Está ejecutando un proceso A , y en un instante
                                                           determinado, se solicita la atención del S.O. Este entra en
                                                           ejecución y salva el estado en le Bloque de control de
                                                           proceso A (PCB). Seguidamente realiza la tarea solicitada
                                                           que una vez finalizada entra en acción el planificador,
                                                           módulo del S.O que selecciona un proceso B para
                                                           ejecutar.
                                                           La actuación del S.O finaliza con el activador, módulo que
                                                           se encarga de restituir los registros con los valores
                                                           almacenados en el PCB del Proceso B , el instante en que
                                                           se restituye el contador de programa marca la transición
                                                           del S.O a la ejecución del proceso B

  El trabajo del S.O puede provenir de 3 fuentes:
  1. Llamadas al sistema provenientes de programas
  2. Interrupciones producidas por los periféricos
  3. Condiciones de excepción o error del hardware


En todos estos casos se deja de ejecutar el proceso en ejecución y se entra a ejecutar el S.O ,los mecanismos para romper
la secuencia lineal de ejecución de un SO son dos : Instrucciones de bifurcación y las interrupciones.
INSTRUCCIONES DE BIFURCACIÓN
Este no es un mecanismo para invocar al S.O puesto que el proceso se ejecuta a nivel usuario y el S.O ha de ejecutar a nivel
de núcleo y en espacios de direcciones distintas. Esto significa que los Servicios del S.O no se pueden solicitar mediante
una instrucción de máquina CALL . Por lo tanto la activación del S.O solamente se realiza mediante interrupciones .
Cuando es un proceso en ejecución el que desea un Servicio ha de utilizar una instrucción TRAP que genera la
interrupción respectiva
LLAMADAS DE UN SISTEMA OPERATIVO
                               La llamada fork() es el servicio que ofrece el API de POSIX para la
                               creación de un nuevo proceso
   Int fork()
   {                            Para completar la imagen de que se está llamando a una función, el S.O devuelve un valor,
    int r;                      como una función real. Al programador le parece, por tanto que invoca al S.O como una
   Load R8, fork_system_call    función , pero eso no es así puesto que lo que hace es invocar a la función que realiza la
   TRAP                         solicitud al sistema operativo.
   LOAD r, R9
   Return(r);
   }


El código escrito carga en uno de los registros de la computadora el número que identifica la llamada al sistema
(fork_system_call), en el caso de que la llamada incluyera parámetros , esto se pasarían en otros registros o en la
pila.
A continuación se ejecuta la función TRAP con lo que se transfiere el control al S.O. que accede al contenido del
R8 para identificar la llamada a ejecutar y realizar el trabajo. Cuando el control se transfiere de nuevo al proceso
que invocó la llamada fork(), se accede al registro R9 para obtener el valor devuelto por la llamada y éste retorna
finalizando le ejecución de la función.
PASOS DE LLAMADAS A UN SISTEMA




• Carga en uno de los registros de la computadora el número que identifica la llamada al sistema
  (fork_system_call)
• Se transfiere el control al S.O. que accede al contenido de R8
• Cuando el control se transfiere de nuevo al proceso que invocó la llamada fork(), se accede al
  registro R9 para obtener el valor devuelto por la llamada y éste retorna
• Finaliza la ejecución
INTERFAZ DEL PROGRAMADOR

La interfaz del S.O con el programador es la que recupera los servicios y llamadas al sistema que los usuarios pueden
utilizar directamente desde sus programas.
                                                      POSIX
Es el estándar de interfaz de los sistemas operativos portables de IEEE basado en el sistema operativo UNIX
Esta es una interfaz ampliamente utilizada, se encuentra disponible en todas las versiones de Unix y Linux. También
Windows NT ofrece un subsistema que permite programar aplicaciones POSIX

Más contenido relacionado

La actualidad más candente

Sistemas De Informacion
Sistemas De InformacionSistemas De Informacion
Sistemas De Informacionads20180.09
 
Elementos orientados al flujo
Elementos orientados al flujoElementos orientados al flujo
Elementos orientados al flujoAlumic S.A
 
5. objetivo y función del sistema operativo
5. objetivo y función del sistema operativo5. objetivo y función del sistema operativo
5. objetivo y función del sistema operativoTeyyo Estraddaa Corona
 
Diagrama de flujos de datos
Diagrama de flujos de datosDiagrama de flujos de datos
Diagrama de flujos de datosOryanaEG
 
Manuales Sistemas de Información
Manuales Sistemas de InformaciónManuales Sistemas de Información
Manuales Sistemas de InformaciónBENHUR B G
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosKarina Rivra
 
Metodología basada en componentes
Metodología basada en componentes Metodología basada en componentes
Metodología basada en componentes Anibal Ulibarri
 
DISPOSITIVOS Y MANEJADORES DE DISPOSITIVOS
DISPOSITIVOS Y MANEJADORES DE DISPOSITIVOSDISPOSITIVOS Y MANEJADORES DE DISPOSITIVOS
DISPOSITIVOS Y MANEJADORES DE DISPOSITIVOSGonzalo Murga Sotelo
 
Base de datos ventajas y desventajas
Base de datos ventajas y desventajasBase de datos ventajas y desventajas
Base de datos ventajas y desventajasMartin Macario
 
Diapositiva de-sistema-de-informacion
Diapositiva de-sistema-de-informacionDiapositiva de-sistema-de-informacion
Diapositiva de-sistema-de-informacionmariadelcarmen02
 
Tema manejo de la entrada
Tema manejo de la entradaTema manejo de la entrada
Tema manejo de la entradaSasil Catzim
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML1da4
 
Sistemas y Procedimientos de Oficina
Sistemas y Procedimientos de OficinaSistemas y Procedimientos de Oficina
Sistemas y Procedimientos de OficinaDanielMejias8
 
estructura de sistemas operativos
estructura de sistemas operativosestructura de sistemas operativos
estructura de sistemas operativosernesto perez
 

La actualidad más candente (20)

Sistemas De Informacion
Sistemas De InformacionSistemas De Informacion
Sistemas De Informacion
 
Elementos orientados al flujo
Elementos orientados al flujoElementos orientados al flujo
Elementos orientados al flujo
 
5. objetivo y función del sistema operativo
5. objetivo y función del sistema operativo5. objetivo y función del sistema operativo
5. objetivo y función del sistema operativo
 
Diagrama de flujos de datos
Diagrama de flujos de datosDiagrama de flujos de datos
Diagrama de flujos de datos
 
Manuales Sistemas de Información
Manuales Sistemas de InformaciónManuales Sistemas de Información
Manuales Sistemas de Información
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas Operativos
 
Metodología basada en componentes
Metodología basada en componentes Metodología basada en componentes
Metodología basada en componentes
 
DISPOSITIVOS Y MANEJADORES DE DISPOSITIVOS
DISPOSITIVOS Y MANEJADORES DE DISPOSITIVOSDISPOSITIVOS Y MANEJADORES DE DISPOSITIVOS
DISPOSITIVOS Y MANEJADORES DE DISPOSITIVOS
 
Sistemas de informacion
Sistemas de informacionSistemas de informacion
Sistemas de informacion
 
Base de datos ventajas y desventajas
Base de datos ventajas y desventajasBase de datos ventajas y desventajas
Base de datos ventajas y desventajas
 
SERVICIOS DEL SISTEMA OPERATIVO
SERVICIOS DEL SISTEMA OPERATIVOSERVICIOS DEL SISTEMA OPERATIVO
SERVICIOS DEL SISTEMA OPERATIVO
 
Diapositiva de-sistema-de-informacion
Diapositiva de-sistema-de-informacionDiapositiva de-sistema-de-informacion
Diapositiva de-sistema-de-informacion
 
Tema manejo de la entrada
Tema manejo de la entradaTema manejo de la entrada
Tema manejo de la entrada
 
Uml (presentación 6)
Uml (presentación 6)Uml (presentación 6)
Uml (presentación 6)
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
 
Sistemas y Procedimientos de Oficina
Sistemas y Procedimientos de OficinaSistemas y Procedimientos de Oficina
Sistemas y Procedimientos de Oficina
 
estructura de sistemas operativos
estructura de sistemas operativosestructura de sistemas operativos
estructura de sistemas operativos
 
diagrama de despliegue
diagrama de desplieguediagrama de despliegue
diagrama de despliegue
 

Destacado

Memoria dinámica en el lenguaje de programación c
Memoria dinámica en el lenguaje de programación cMemoria dinámica en el lenguaje de programación c
Memoria dinámica en el lenguaje de programación cjuan perez
 
Isaac Asimov
Isaac AsimovIsaac Asimov
Isaac Asimovyapsmail
 
Programando o ESP8266 com Python
Programando o ESP8266 com PythonProgramando o ESP8266 com Python
Programando o ESP8266 com PythonRelsi Maron
 
robotics and its components
robotics and its componentsrobotics and its components
robotics and its componentsAmandeep Kaur
 
AVR_Course_Day5 avr interfaces
AVR_Course_Day5 avr interfacesAVR_Course_Day5 avr interfaces
AVR_Course_Day5 avr interfacesMohamed Ali
 
AVR_Course_Day1 basic electronics
AVR_Course_Day1 basic electronicsAVR_Course_Day1 basic electronics
AVR_Course_Day1 basic electronicsMohamed Ali
 
Indian Semiconductors Industry Presentation 060109
Indian Semiconductors Industry Presentation 060109Indian Semiconductors Industry Presentation 060109
Indian Semiconductors Industry Presentation 060109Workosaur.com
 

Destacado (10)

Apunte c a_bajo_nivel
Apunte c a_bajo_nivelApunte c a_bajo_nivel
Apunte c a_bajo_nivel
 
Memoria dinámica en el lenguaje de programación c
Memoria dinámica en el lenguaje de programación cMemoria dinámica en el lenguaje de programación c
Memoria dinámica en el lenguaje de programación c
 
Basededatosicompleto 091122141836-phpapp02
Basededatosicompleto 091122141836-phpapp02Basededatosicompleto 091122141836-phpapp02
Basededatosicompleto 091122141836-phpapp02
 
Isaac Asimov
Isaac AsimovIsaac Asimov
Isaac Asimov
 
Programando o ESP8266 com Python
Programando o ESP8266 com PythonProgramando o ESP8266 com Python
Programando o ESP8266 com Python
 
robotics and its components
robotics and its componentsrobotics and its components
robotics and its components
 
AVR_Course_Day5 avr interfaces
AVR_Course_Day5 avr interfacesAVR_Course_Day5 avr interfaces
AVR_Course_Day5 avr interfaces
 
Material estudio c
Material estudio cMaterial estudio c
Material estudio c
 
AVR_Course_Day1 basic electronics
AVR_Course_Day1 basic electronicsAVR_Course_Day1 basic electronics
AVR_Course_Day1 basic electronics
 
Indian Semiconductors Industry Presentation 060109
Indian Semiconductors Industry Presentation 060109Indian Semiconductors Industry Presentation 060109
Indian Semiconductors Industry Presentation 060109
 

Similar a P1

Similar a P1 (20)

P1
P1P1
P1
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Trabajo so
Trabajo soTrabajo so
Trabajo so
 
Unidad 1 Sistemas Operativos
Unidad 1 Sistemas OperativosUnidad 1 Sistemas Operativos
Unidad 1 Sistemas Operativos
 
Capitulo1 sop
Capitulo1 sopCapitulo1 sop
Capitulo1 sop
 
que es un sistema operativo
 que es un sistema operativo que es un sistema operativo
que es un sistema operativo
 
Unidad central de procesamiento
Unidad central de procesamientoUnidad central de procesamiento
Unidad central de procesamiento
 
CAPITULO 1
CAPITULO 1CAPITULO 1
CAPITULO 1
 
Sistemas!!!
Sistemas!!!Sistemas!!!
Sistemas!!!
 
Sistemas..!!
Sistemas..!!Sistemas..!!
Sistemas..!!
 
Sistemas!!
Sistemas!!Sistemas!!
Sistemas!!
 
Sistemas..!!
Sistemas..!!Sistemas..!!
Sistemas..!!
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Realice una breve historia de los sistemas operativos
Realice una breve historia de los sistemas operativosRealice una breve historia de los sistemas operativos
Realice una breve historia de los sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Trabajo Sistemas Operativos Orellana Sarmiento
Trabajo Sistemas Operativos Orellana SarmientoTrabajo Sistemas Operativos Orellana Sarmiento
Trabajo Sistemas Operativos Orellana Sarmiento
 
Guia (1)
Guia (1)Guia (1)
Guia (1)
 
Clasificacion de los sistemas opeatativos
Clasificacion de los sistemas opeatativos Clasificacion de los sistemas opeatativos
Clasificacion de los sistemas opeatativos
 
Introduccion a los sistemas operativos
Introduccion a los sistemas operativosIntroduccion a los sistemas operativos
Introduccion a los sistemas operativos
 

Más de Cesar Oswaldo Osorio Agualongo

Más de Cesar Oswaldo Osorio Agualongo (20)

Aprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación PythonAprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación Python
 
Notas 2 do parcial
Notas 2 do parcialNotas 2 do parcial
Notas 2 do parcial
 
Repaso excel
Repaso excelRepaso excel
Repaso excel
 
Notas 2490
Notas 2490Notas 2490
Notas 2490
 
Notas 2625
Notas 2625Notas 2625
Notas 2625
 
Material iii parcial
Material iii parcialMaterial iii parcial
Material iii parcial
 
Unidad 2 curso c
Unidad 2 curso cUnidad 2 curso c
Unidad 2 curso c
 
Parte i curso c
Parte i curso cParte i curso c
Parte i curso c
 
Punteros y funciones
Punteros y funciones Punteros y funciones
Punteros y funciones
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Punteros presentacion
Punteros presentacionPunteros presentacion
Punteros presentacion
 
Practica 6 manejo de archivos v1
Practica 6 manejo de archivos v1Practica 6 manejo de archivos v1
Practica 6 manejo de archivos v1
 
2do parcial c
2do parcial c2do parcial c
2do parcial c
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Funciones recursivas
Funciones recursivasFunciones recursivas
Funciones recursivas
 
Punteros y funciones abril agosto 2016
Punteros y funciones abril agosto 2016Punteros y funciones abril agosto 2016
Punteros y funciones abril agosto 2016
 
Programacion semanal programacion i
Programacion semanal programacion iProgramacion semanal programacion i
Programacion semanal programacion i
 
Silabo programacion i abril2016 agosto2016
Silabo programacion i abril2016 agosto2016Silabo programacion i abril2016 agosto2016
Silabo programacion i abril2016 agosto2016
 

P1

  • 1. Sistemas Operativos I Tema 1 Introducción a los sistemas operativos
  • 2. Objetivos 1. Presentar el concepto de sistema operativo. 2. Describir las funciones que debe llevar a cabo cualquier sistema operativo actual. 3. Dar una visión general de la historia de los sistemas operativos que ayudará a entender cuándo y por qué se introdujeron estas funciones en el sistema.
  • 3. Un Sistema Operativo es un programa que actúa como intermediario entre el usuario y el hardware de una computadora. Propósito: Es ofrecer un ambiente en el que un usuario pueda ejecutar programas. Objetivos: Comodidad: Facilitar el uso de la máquina a los usuarios, proporcionando un entorno cómodo para el desarrollo y ejecución de programas y para el acceso a los recursos de la máquina. Eficiencia: El s.o. debe administrar los recursos (hardware y software) de la máquina de forma que se aprovechen de la manera más conveniente.
  • 4. Cómo funciona un Sistema Operativo Los sistemas operativos proporcionan una plataforma de software encima de la cual otros programas, llamados aplicaciones, puedan funcionar. Las aplicaciones se programan para que funcionen encima de un sistema operativo particular, por tanto, la elección del sistema operativo determina en gran medida las aplicaciones que puedes utilizar.
  • 5. Cómo se utiliza un Sistema Operativo Un usuario normalmente interactúa con el sistema operativo a través de un sistema de comandos, por ejemplo, el sistema operativo DOS contiene comandos como copiar y pegar para copiar y pegar archivos respectivamente. Los comandos son aceptados y ejecutados por una parte del sistema operativo llamada procesador de comandos o intérprete de la línea de comandos. Las interfaces gráficas permiten que utilices los comandos señalando y clickeando objetos que aparecen en la pantalla .
  • 6. Un sistema de computo puede dividirse en cuatro componentes: Definen las formas en que estos recursos se utilizan para resolver problemas de computo de los usuarios Proporcionan los recursos básicos de computo El sistema operativo controla y coordina el uso del hardware entre los diversos programas de aplicación para los diversos usuarios
  • 7. Veamos que el S.O es un asignador de recursos (hardware y software) que se requieren para resolver un problema : tiempo de CPU, espacio de memoria, espacio de almacenamiento para archivos, dispositivos de E/S etc. El S.O actúa como un administrador de recursos y los asigna a programas y usuarios específicos según sea necesario para la realización de tareas.
  • 8. Generación Cero (década de 1940) Los primeros sistemas computacionales no poseían sistemas operativos. Los usuarios tenían completo acceso al lenguaje de la maquina. Todas las instrucciones eran codificadas a mano. Primera Generación (década de 1950) SISTEMAS POR LOTES Las computadoras eran fisicamente enormes máquinas que se operaban desde una consola. Los dispositivos de entrada comunes eran los lectores de tarjetas y unidades de cinta. Los dispositivos de salida eran impresoras de línea, unidades de cinta y perforadoras de tarjeta. El usuario no interactuaba con el computador, mas bien preparaba el trabajo que consistía en el programa, los datos y la información de control y lo entregaba al operador de la máquina. En algún momento posterior (minutos, horas o días)aparecía la salida que era el resultado del programa así como un vaciado de la memoria y los registros en caso de errores en el programa. El S.O era bien simple , su tarea era transferir automáticamente el control de un trabajo al siguiente. El sistema operativo siempre estaba residente en memoria. Para acelerar el procesamiento los operadores los agrupaban en lotes los trabajos con necesidades similares y los ejecutaban en la Pc como un grupo
  • 9. Segunda Generación (a mitad de la década de 1960) La característica de los sistemas operativos fue el desarrollo de los sistemas compartidos o mutitarea con multiprogramación, y los principios del multiprocesamiento. Un Sistema operativo de tiempo compartido permite a varios usuarios compartir la computadora simultáneamente. Debido a que cada acción o comando en un sistema de tiempo compartido tiende a ser corta, se necesita un poco de tiempo de CPU para cada usuario. Como el sistema cambia rápido de un usuario al siguiente , el usuario tiene la impresión de que todo el sistema de computo está dedicado a el . Un S.O de tiempo compartido hace uso de la planificación de la CPU y la multiprogramación para proporcionar a cada usuario una pequeña porción de una computadora. La gestión por parte del SO se centra en el concepto de proceso. Un proceso es un programa en el que se ha iniciado su ejecución. Por lo tanto un programa es un ente pasivo mientras que un proceso es un ente activo.
  • 10. RESUMEN Los sistemas operativos se han desarrollado en los últimos 40 años por dos razones principales: 1. Planificar las actividades computacionales y lograr un buen desempeño del sistema en si. 2. Proporcionar un ambiente adecuado para el desarrollo y ejecución de programas. Los sistemas por lotes permitieron la ejecución secuencial automática de trabajos mediante un S.O residente, la computadora ya no tenia que esperar mas la operación humana, sin embargo la utilización de la CPU todavía era reducida, debido a la baja velocidad de los dispositivos de E/S. Para mejorar el desempeño global del sistema de computo, se introdujo la multiprogramación, que permitía que varios trabajos se mantengan en memoria. La CPU se conmuta entre ellos para incrementar la ocupación del procesador. La multiprogramación se desarrolló para mejorar el rendimiento, también posibilita el tiempo compartido, estos sistemas permiten que los usuarios utilicen al mismo tiempo un sistema de computo de manera interactiva. Los Pc son menos costosas que los mainframes , las computadoras personales se han beneficiado del desarrollo de los Sistemas Operativos para equipos grandes , sin embargo, debido a que un usuario puede usar en exclusivo una computadora, La utilización de la CPU ya no es una preocupación principal y por lo tanto el diseño y consideraciones que se toman para sistemas operativos mainframes no son apropiados para sistemas pequeños.
  • 11. RESUMEN Los sistemas paralelos tienen mas de una CPU en estrecha comunicación los mismas que comparten memoria, bus y dispositivos de E/S. Estos sistemas utilizan el multiprocesamiento simétrico en el que cada procesador ejecuta una copia idéntica del S.O y además se le asigna una tarea específica y todos los procesadores están al mismo nivel. En otro esquema un procesador llamado maestro controla el sistema, los restantes procesadores solicitan instrucciones , esta relación define una relación maestro-esclavo. Los sistemas paralelos proporcionan un mayor rendimiento y una mejor confiabilidad. Un sistema operativo estricto de tiempo real controla una aplicación dedicada y tiene restricciones de tiempo fijas y bien definidas, esto implica que el procesamiento debe realizarse dentro de estas restricciones, o de lo contrario el sistema fallará. La Influencia del Internet ha impulsado el desarrollo de sistemas operativos modernos que incluyen navegadores y software para redes y comunicación como características integrales . Se ha visto que avance lógico de los Sistemas Operativos impulsado por la inclusión de características de hardware de la CPU Esta tendencia se puede ver hoy en la evolución delas PC en donde se está mejorando un hardware de bajo precio de manera suficiente para permitir, a su vez, características mejoradas.
  • 12. ARQUITECTURA DE UN COMPUTADOR
  • 13. Todo PC tiene, como parte fundamental de su arquitectura, al menos un procesador. En su interior se encuentran una serie de elementos básicos tales como registros (capaces de almacenar pequeñas cantidades de información), unidad aritmético-lógica o UAL (capaz de realizar simples operaciones aritméticas), unidad de control, etc. Este procesador se comunica con el resto del ordenador a través de lo que denominaremos el bus del sistema. La comunicación entre el procesador y el resto del equipo se puede dividir a su vez en dos categorías: la conexión con la memoria (también llamada memoria principal o memoria RAM), y la conexión con los dispositivos de entrada salida (E/S). El circuito representado en esta figura por el nombre Puente E/S es el encargado de separar los datos de estas categorías. La conexión con la memoria RAM se realiza a través del bus de memoria. Esta memoria es capaz de almacenar información mientras el equipo esté encendido. Al apagar el equipo, los datos almacenados en este dispositivo se pierden, por este motivo, también se le conoce como memoria volátil.
  • 14. Los datos dirigidos a los dispositivos de entrada/salida se envían a través del bus de entrada/salida (o bus E/S). Este bus se utiliza para conectar todos los dispositivos auxiliares que necesita el ordenador para su funcionamiento. Dichos dispositivos no se conectan directamente el bus, sino a un circuito encargado de gestionar su comunicación denominado “controlador”. Una de las características que ha contribuido a que esta arquitectura haya alcanzado un nivel tan alto de popularidad es la posibilidad de conectar de forma sencilla dispositivos adicionales. El bus de entrada/salida está preparado para conectar más dispositivos y así dotar al Pc de mayor capacidad. De esta forma, el Pc se puede completar con una impresora, un scanner, discos duros adicionales, lector/grabador de DVDs, etc. La mayoría de estos dispositivos se conectan al Pc a través de conectores específicamente incluidos a tal efecto (tal es el caso de la conexión de una impresora al puerto paralelo) o a través de las clavijas de expansión.
  • 15.
  • 16. FUNCIONES Las funciones clásicas en un sistemas Operativo se agrupan en tres categorías: 1. Gestión de los recursos de la computadora 2. Ejecución de los servicios para los programas 3. Ejecución de los mandatos de los usuarios El S.O está formado por tres capas. Núcleo (kernel) Que es la que gestiona los recursos de hardware del sistema y la que suministra la funcionalidad básica del sistemas operativo. Servicios o llamadas al Sistema Ofrece a los programas unos servicios en forma de interfaz API , desde el punto de vista de los programas , esta capa extiende la funcionalidad de la computadora , por lo que se dice que el S.O ofrece una máquina virtual extendida a los programas. Interprete de Comandos Shell Suministra una interfaz a través de la cual el usuario puede dialogar de forma interactiva con la computadora. Esta capa recibe los mandatos de usuario, los interpreta y, si puede los ejecuta .
  • 17. FUNCIONES DEL SISTEMA OPERATIVO 1.- Gestor de recursos: En un computador los programas en ejecución deben compartir los recursos disponibles que sonlimitados (CPU, memoria, dispositivos de E/S, etc.). El s.o.establece la política que determina a quién, cuándo, cuánto tiempo y la cantidad de recurso que asigna.
  • 18. EL S.O. COMO GESTOR DE RECURSOS ASIGNACIÓN DE RECURSOS Para este propósito debe mantener estructuras que le permitan saber que recursos están libres y cuáles están asignados a cada programa. La asignación se realiza según la disponibilidad de los mismos y la prioridad de los programas. También hace la recuperación de recursos cuando ya no son necesitados. Una mala recuperación puede hacer que el sistema operativo considere por ejemplo que ya no le quede memoria disponible cuando en realidad si la tiene. Protección Ha de garantizar la protección entre los usuarios del sistema, para esto impide que algunos programas accedan a los recursos asignados a otros programas. Contabilidad Mide la cantidad de recursos que, a lo largo de su ejecución utiliza cada programa. De esta forma se puede conocer la carga de utilización que tiene cada recursos y se puede imputar a cada usuario los recursos que ha utilizado.
  • 19. FUNCIONES DEL SISTEMA OPERATIVO 2.- Máquina extendida: Los recursos hardware son difíciles de manejar y programar (especialmente la E/S). El s.o. debe ocultar la complejidad del hardware y proporcionar una interfaz sencilla de utilizar.
  • 20. EL SISTEMA OPERATIVO COMO MAQUINA EXTENDIDA El S.O ofrece a los programas un conjuntos de servicios o llamadas del sistema que pueden solicitar cuando lo necesiten, proporcionando a los programas una visión de máquina extendida.. Los servicios se pueden agrupar en 4 clases: 1. Ejecución de programas..- Existen servicios para lanzar la ejecución asi como para pararla y abortarla, también existen servicios para conocer y modificar las condiciones de ejecución, para sincronizar comunicar unos programas con otros. La ejecución de programas da lugar al concepto de proceso, que puede ser definido como un programa en ejecución. Para que un programa pueda ser convertirse en un proceso ha de estar traducido a código de máquina y almacenado en un dispositivo de almacenamiento. Es importante diferenciar entre proceso y programa: • Programa: Lista de instrucciones. Ente pasivo. Se almacena en ficheros. • Proceso: Ejecución de un programa. Ente activo. La ejecución de un programa requiere que éste se cargue, previamente, en memoria.
  • 21. EL SISTEMA OPERATIVO COMO MAQUINA EXTENDIDA 2. Ordenes de E/S.- Estos servicios ofrecen una gran comodidad y protección al proveer a los programas de operaciones de lectura, escritura y modificación del estado de los periféricos. Las operaciones de E/S son complejas y dependiente del hardware específico del periférico. 3. Operaciones sobre archivos.- Los archivos ofrecen un mayor nivel de abstracción que las ordenes de E/S permitiendo operaciones como creación, borrado, renombrado, apertura, escritura y lectura de archivos. 4. Detección y tratamiento de errores.- Además de analizar todas las ordenes que recibe, para comprobar que se pueden realizar, el S.O se encarga de tratar todas las condiciones de error que detecte el hardware. Entre las condiciones de error d que pueden aparecer podemos mencionar los siguientes: a) Errores en las operaciones de E/S b) Errores de paridad en los accesos a memoria o en los buses c) Errores de ejecución en los programas como desbordamientos, violaciones de memoria, códigos de instrucción prohibidas, etc.
  • 22. EL SISTEMA OPERATIVO COMO INTERFAZ DE USUARIO Cuando un usuario introduce una orden en un ordenador, ésta es captada por el intérprete de comandos (shell). El intérprete se encarga de traducir o descomponer la orden en llamadas al sistema. El Shell se comporta como un bucle infinito que está repitiendo constantemente la siguiente secuencia: • Espera una orden del usuario. En el caso de interfaz textual el shell está pendiente de lo que escribe el usuario. En las interfaces gráficas está pendiente de los eventos del apuntador (mouse). • Analiza la orden y, en caso de ser correcta la ejecuta para lo cual emplea los servicios del S.O. Casi todos los interpretes de ordenes pueden ejecutar archivos de mandatos llamados shell scripts , estos archivos incluyen varios mandatos totalmente equivalentes a los mandatos que se introducen en le terminal. Además para realizar funciones complejas pueden incluir mandatos especiales de control de flujo de ejecución como por ej, el goto, for e el if .
  • 23. ARRANQUE DE LA COMPUTADORA El arranque de una computadora tiene 2 fases: la de arranque hardware y la del sistema operativo. Arranque Hardware Las computadoras antiguas tenían una serie de conmutadoras que permitían introducir una a una palabras en la memoria principal en los registros. El usuario debía introducir a mano y en binario un primer programa que permitiese cargar otros programas almacenados en algún soporte, como la cinta de papel. En la figura podemos observar que una parte del mapa de memoria está construido con memoria ROM no volátil en esta se encuentra un programa de arranque está siempre disponible le, puesto que la ROM no pierde su contenido. Lo que le llamaremos Iniciador ROM Al encender la computadora o presionar RESET se genera una señal eléctrica para cargar valores predefinidos en los registros, esta señal carga en el CP (contador de programa) la dirección de comienzo del iniciador ROM FUNCIONES DEL INICIADOR ROM 1. Hacer una comprobación del sistema que sirve para detectar sus características, memoria, dispositivos conectados, etc, una vez pasada la comprobación entra a la fase de: 2. Lectura y almacenamiento en memoria del programa cargador del S.O 3. Da el control a este programa, bifurcando a la dirección de memoria en la que lo ha almacenado. Nota.- Para tener una mayor flexibilidad se hace que el Iniciador Rom sea independiente del sistema operativo
  • 24. ARRANQUE DEL SISTEMA OPERATIVO Boot del sistema que está almacenado en una en una zona predefinida del disco El programa cargador del S.O tiene por misión traer a memoria principal algunos de los componentes del Sistema Operativo. Una vez en memoria se pasa a la fase de iniciación que incluye las siguientes operaciones: : • Comprobación del Sistema Completamiento del hardware realizados por el ………… y se comprueba que el sistema de archivos tengan coherencia. • Se establece las estructuras de información propias del S.O tales como tablas de procesos, tablas de memoria y las de E/S • Se carga a memoria aquella parte del S.O que ha de estar siempre en memoria , a la que se le denomina Sistema Operativo Residente • Se crea un proceso de inicio o LOGIN para cada terminal definido en el sistema.
  • 25.
  • 26. COMPONENTES Y ESTRUCTURA DE UN SISTEMA OPERATIVO interfaz de servicios en la que los programas deben elegir con cual quieren ejecutar El Núcleo es el que interacciona directamente con el hardware, las funciones de este se centran en la gestión de recursos como el procesador, tratamiento de interrupciones y las funciones básicas del manipulación de memoria. Los Servicios se suelen agrupar de acuerdo a su funcionalidad: Gestión de Procesos.- Encargada de la creación, planificación y destrucción de procesos Gestión de Memoria.- Encargada de saber que partes de memoria están libres y cuales ocupadas, así como la asignación y liberación según la necesiten los recursos. Gestión de E/S.- Facilitar el uso de los dispositivos periféricos Gestión de Archivos.- Manejo de archivos y directorios y de la administración del almacenamiento secundario Comunicación y Sincronización entre procesos.- Encargada de ofrecer mecanismos para que los procesos puedan comunicarse y sincronizarse. Seguridad y Protección.- Se encargará de garantizar la identidad de los usuarios y de definir lo que pueden hacer cada uno de ellos con los recursos del sistema.
  • 27. ESTRUCTURA DEL SISTEMA OPERATIVO SISTEMAS OPERATIVOS MONOLITICOS No tienen una estructura bien clara definida , todos sus componentes se encuentran integrados en un único programa que ejecuta en un único espacio de direcciones , todas las funciones que ofrece el sistema operativo se ejecutan en modo núcleo. (programas sencillos) El problema que plantean es en lo complicado que es modificar el S.O para añadir nuevas funcionalidades y servicios, lo que implica la modificación de un gran programa compuesto por miles de líneas de código fuente y funciones, cada una de las cuales puede invocar a otra cuando así lo requiera. SISTEMAS OPERATIVOS ESTRUCTURADOS Capa 5 Programa de usuario Capa 4 Gestión de la E/S Capa 3 Controlador de consola Capa 2 Gestión de memoria Capa 1 Planif. CPU y multiprogramac. Capa 0 Hardware El S.O se organiza como una jerarquía de capas , donde cada capa ofrece una interfaz clara y bien definida a la capa superior y solamente utiliza los servicios que le ofrece la capa inferior. Su principal ventaja es la modularidad y la ocultación de la información , la capa superior no necesita conocer como se ha implementado la capa anterior, solo conoce la interfaz que ofrece, lo que facilita que las capas se pueden ir construyendo y depurando por separado
  • 28. CLIENTE SERVIDOR Este tipo de modelo consiste en implementar la mayor parte de los servicios y funciones del S.O en procesos de usuario, dejando solo una pequeña parte del sistema operativo ejecutando en modo núcleo conocido a esto como micro núcleo y a los procesos que ejecutan el resto de funciones se les denomina Servidores La gran ventaja de este modelo es la gran flexibilidad que presenta. Cada proceso servidor solo se ocupa de una funcionalidad concreta, lo que hace que cada pate pueda ser pequeña y manejable Este tipo a su vez facilita el desarrollo y depuración de cada uno de los procesos servidores. En cuanto a la desventaja se pueden citar que estos sistemas presentan una mayor sobrecarga en el tratamiento de los servicios que los sistemas monolíticos. Esto se debe a que los distintos componentes de un sistema operativo de este tipo ejecutan en espacios de direcciones distintos, lo que hace que su activación requiera mas tiempo.
  • 29.
  • 30. Un programa no es mas que un conjunto de instrucciones , mientras que el proceso surge cuando un programa se pone en ejecución. Esto hace que varios procesos puedan ejecutar al mismo programa ala vez. Ej. Varios usuarios estén ejecutando el mismo editor de textos.
  • 31.
  • 32.
  • 33.
  • 34. Un solo usuario no puede por lo general mantener a la CPU o a los dispositivos de E/S ocupados en todo momento . La Multiprogramación incrementa el uso de la CPU organizando los trabajos de tal manera que la CPU siempre tenga alguno por ejecutar . La idea es que el S.O mantiene simultáneamente varios trabajos en la memoria El sistema operativo toma y comienza a ejecutar uno de los trabajos que están en la memoria . En ocasiones el trabajo tiene que esperar a que se complete alguna tarea entonces el S.O simplemente cambia a otro trabajo, con el tiempo el primer trabajo termina su espera y vuelve de nuevo a la CPU
  • 35.
  • 36.
  • 37.
  • 38.
  • 39. ELEMENTOS DE UN PROCESO Al contenido de los segmentos de memoria en los que reside el código y los datos del proceso se le denomina: IMAGEN DE MEMORIA Durante la ejecución el proceso va modificando los registros del modelo de programación de la computadora de acuerdo a las instrucciones de máquina presentes.. A este contenido de los registros del modelo de programación se lo conoce como ESTADO DEL PROCESADOR El S.O mantiene por cada proceso una serie de estructuras de información que permite identificar las características de éste así como los recursos asignados Una parte muy importante de esta estructura es el BLOQUE DE CONTROL DEL PROCESO (BCP) El sistema operativo debe encargarse también de ofrecer una serie de servicios para la gestión de procesos y de gestionar los posibles interbloqueos que surgen cuando los procesos acceden a diferentes recursos. Dependiendo del numero de procesos y de usuarios que pueden ejecutar simultáneamente, un Sistema Operativo puede ser : Monotarea Multitarea Monousuario Multiusuario
  • 40. También llamado Monoproceso permiten que exista un proceso en cada instante O Multiproceso , permite que exista varios procesos a la vez . El S.O se encarga de ir repartiendo el tiempo del procesador entre estos procesos Está previsto para soportar a un solo usuario Soporta varios usuarios trabajando simultáneamente desde varias terminales . A su vez cada usuario puede tener activo más de 1 proceso , por lo que debe ser también el sistema Multitarea . También reciben el nombre de Tiempo Compartido porque ha de repartir el tiempo de la computadora entre los usuarios para procesar cada una de las tareas de los usuarios
  • 41. El sistema operativo ofrece una serie de servicios que permiten definir la vida de un proceso; y está constituido por las siguientes fases: Creación Ejecución y muerte de un proceso: Crear un Proceso El proceso es creado por el S.O cuando así lo solicita otro proceso, que se convierte en el padre del nuevo. Existen 2 modalidades para crear un proceso: Creación a partir de un procesos padre Creación a partir de un archivo ejecutable Esta modalidad es la que se define en el API WIN 32 Ejecutar un Proceso Se pueden ejecutar de 2 formas : batch e interactiva En batch también llamado backcground no está asociado a ningún terminal, deberá tomar sus datos de entrada de un archivo y deberá depositar sus resultados en otro archivo, Un ejemplo típico de esta forma es un proceso de nominas que parte de un archivo de empleados y del archivo de los partes de trabajo y genera un archivo de ordenes bancarias. En Interactivo está asociado a un terminal, por el que recibe la información del usuario y por el que contesta con los resultados, un ejemplo de este tipo es un proceso de edición. Terminar la Ejecución de un Proceso Un proceso puede terminar su ejecución por varias causas de entre las principales están: Ha terminado de ejecutar el programa Se produce una condición de error pj. División por 0 o violación de memoria Otro proceso o el usuario deciden que ha de terminar. Cambiar el programa de un proceso Algunos S.O tienen un servicio que cambia el programa que está ejecutando un proceso por otro programa almacenado en disco. Esta operación no consiste en crear uno nuevo que ejecuta ese nuevo programa, Se trata de eliminar el programa que está ejecutando el proceso y de incluir el nuevo programa que se trae del disco.
  • 42.
  • 43.
  • 44. Gestión de la memoria La gestión de memoria se encuentra normalmente asociada a la gestión de procesos: para ejecutar un proceso es necesario asignarle memoria y cargarlo en ella; cuando finaliza su ejecución, la memoria debe ser liberada. Problemática para la gestión de memoria ?Aislamiento del proceso: Cada proceso debe tener una zona de memoria independiente que no puede ser interferida por otros procesos. ?Asignación de la memoria: Llevar el control de las zonas de memoria libres y ocupadas y la zona de memoria asignada a cada proceso. ?Memoria virtual: Técnica que permite direccionar la memoria desde un punto de vista lógico, sin depender del tamaño o la ubicación de la zona de memoria que finalmente se asigne al proceso. ? Funciones de gestión de memoria: La gestión de memoria es transparente al programador: la asignación y la liberación se hacen automáticamente con la creación y eliminación de procesos.
  • 45.
  • 46. SERVICIOS EN LA GESTION DE LA MEMORIA SOLICITAR MEMORIA Este servicio aumenta el espacio de datos de la imagen de memoria del proceso. El sistema operativo satisfará la petición siempre y cuando cuente con los recursos necesarios para ello. En general el sistema operativo devuelve un apuntador con la dirección de la nueva memoria. El programa utilizará este nuevo espacio a través del mencionado apuntador. LIBERAR MEMORIA Este servicio sirve para devolver trozos de la memoria del proceso. El S.O recupera el recurso liberado y lo añade a sus listas de recursos libres. COMPARTIR MEMORIA El gestor de memoria se encarga de servicios que periten que los procesos puedan comunicarse utilizando un segmento de memoria compartida Para ello se permite que los procesos creen y liberen este tipo de segmentos.
  • 47. COMUNICACIÓN Y SINCRONIZACION DE PROCESOS Los procesos son entes independientes y aislados que por razones de seguridad no deben interferir unos con otros. Sin embargo cuando se divide un trabajo complejo en varios proceso que cooperan entre si para realizar ese trabajo, es necesario que se comuniquen para transmitirse datos y ordenes y se sincronicen para ejecutar acciones, por lo tanto el S.O debe incluir estos servicios . El S.O ofrece una serie de mecanismos básicos de comunicación que permiten transferir cadenas de bytes, pero deben existir la coordinación entre procesos para interpretar esas cadenas de bytes transferidas Dependiendo el servicio utilizado, la comunicación se limita a los procesos de una máquina (procesos locales) o puede involucrar a proceso de maquinas distintas (procesos remotos) Proceso Proceso Proceso Proceso de Usuario de Usuario de Usuario de Usuario SO SO SO UN COMPUTADOR DOS COMPUTADORES
  • 48. SERVICIOS COMUNICACIÓN Y SINCRONIZACION DE PROCESOS 1. CREACION DEL MECANISMO 2. UTILIZACION DEL MECANISMO 3. DESTRUCCION DEL MECANISMO De acuerdo con esto, los servicios básicos de comunicación que incluyen todos los mecanismos de comunicación son: • Crear Permite que le proceso solicite la creación del mecanismos • Enviar o Escribir Permite que el proceso emisor envíe información a otro • Recibir o Leer Permite que el proceso receptor reciba información de otro • Destruir Permite que el proceso solicite la creación o destrucción del mecanismo. En una comunicación síncrona los dos procesos han de ejecutar los servicios de comunicación al mismo tiempo, es decir el emisor ha de estar en el servicio de enviar y el receptor ha de estar en el servicio de recibir , para que esto ocurra , uno de ellos ha de esperar a que el otro llegue a la ejecución del correspondiente servicio. En una comunicación asíncrona el emisor o tiene que esperar a que el receptor solicite el servicio recibir , hace el envío y sigue con la ejecución , esto hace que el S.O establezca un almacenamiento intermedio para guardar la información hasta que el receptor la solicite Los mecanismos de sincronización suelen utilizar los siguientes servicios: Crear, Bloquear, Despertar, Destruir
  • 49. GESTION DE LAS UNIDADES DE E/S El Gestor de E/S controla el funcionamiento de todos los dispositivos de E/S para alcanzar los siguientes objetivos: 1. Facilitar el manejo de dispositivos periféricos, por lo que debe ofrecer una interfaz sencilla y fácil de utilizar entre los dispositivos y gestionar los errores que se pueden producir en el acceso a los mismos 2. Ofrecer mecanismos de protección que impidan a los usuarios acceder sin control a los dispositivos periféricos. SERVICIOS El S.O ofrece una serie de servicios de E/S independiente de los dispositivos , esto implica que debe emplearse los mismos servicios y operaciones de E/S para leer . Ejem datos de un disquete , de un disco duro o de un teclado. Los servicios de E/S están dirigidos básicamente a la lectura y escritura de datos . Estos servicios pueden estar orientados a caracteres como ocurre con las impresoras o los terminales o pueden estar orientadas a bloques como ocurre con las unidades de disco .
  • 50. GESTION DE ARCHIVOS Y DIRECTORIOS El servidor de archivos es la parte del sistema operativo que cubre una de las cuatro clases de funciones que tiene éste en su faceta de máquina extendida. Los objetivos fundamentales del servidor de archivos son: • Facilitar el manejo de los dispositivos periféricos Para ello ofrece una visión lógica simplificada de los mismos en forma de archivos • Proteger a los usuarios, poniendo limitaciones a los archivos que es capaz de manipular cada usuario. Los servicios en el servidor de archivos son de dos tipos: 1. Los servicios dirigidos al manejo de datos o archivos 2. Los dirigidos al manejo de los nombres o directorios. El servidor de archivos ofrece al usuario una visión lógica compuesta por una serie de objetos…. Identificables por un nombre lógico sobre los que se pueden realizar una serie de operaciones. La visión física ha de incluir los detalles de como están almacenados estos objetos en los periféricos correspondientes.
  • 51.
  • 52.
  • 53.
  • 54. SERVICIO DE ARCHIVOS Un archivo es una unidad de almacenamiento lógico no volátil que agrupa un conjunto de información relacionada entre si bajo un mismo nombre. Cada archivo tiene una información asociada que utilizan tanto los usuarios como el propio servidor de archivos. Entre las informaciones mas usuales se pueden destacar las siguientes: • Tipo de Archivo Ej. Archivo de datos , ejecutables, etc • Propietario del archivo Identificador de usuario que creó • Tamaño del Archivo. Este tamaño suel e ser menor que el espacio de disco asignado al archivo • Instantes (fecha hora)importantes en la vida de un archivo como son los siguientes: • Instante en que se creó • Instante de la última modificación • Instante del último acceso • Derechos de acceso al archivo (lectura, lectura-escritura, solo escritura, ejecución, etc Las operaciones sobre archivos que ofrece el servidor de archivos están referidas a la visión lógica de los archivos . Una solución común es que el archivo se v visualice como un vector de bytes o caracteres Esta visión lógica incluye normalmente un puntero de posición. Este puntero permite hacer operaciones de lectura y escritura consecutivas sin tener que indicar la posición de la operación
  • 55. SERVICIO DE ARCHIVOS La visión física está formada por los elementos físicos del periférico que soportan el archivo. En el caso más común de tratarse de discos , la visión física consiste en la enumeración ordenada de los bloques de disco en los que reside el archivo
  • 56. SERVICIO DE ARCHIVOS Un archivo es una entidad viva, que va evolucionando de acuerdo a los servicios que se solicitan del S.O su fase de vida es la siguiente: • Se crea el archivo • Se abre: se genera un descriptor de archivo • Se escribe y lee (El archivo puede crecer) • Se cierra . Se borra Los servicios que ofrece el Servidor de Archivos son: CREAR UN ARCHIVO Se crea un archivo vacío esta creación exige una interpretación del nombre, puesto que el servidor de archivos ha de comprobar que el nombre es correcto y que el usuario pueda hacer la operación solicitada. ABRIR UN ARCHIVO Este servicio comprueba que el archivo exista , que el usuario tiene derechos de acceso y trae a memoria información del objeto para optimizar el acceso al mismo, además devuelve al usuario un manejador de archivo temporal para su manipulación . ESCRIBIR Y LEER Este servicios se realiza utilizando el identificador o manejador devuelto en las operaciones anteriores. Una operación de lectura permite trae datos del archivo a memoria, para ello se especifica el identificador, la posición de memoria y la cantidad de información a leer . Las operaciones de escritura permiten llevar datos situados en memoria al archivo, para ello y al igual que en las operaciones de lectura se debe especificar el identificador obtenido en las operaciones de creación o apertura , la posición de memoria y la cantidad de información a escribir. CERRAR UN ARCHIVO Terminado la utilización de un archivo se debe cerrar, con lo que se elimina el identificador temporal y de esta forma se liberan los recursos de memoria BORRAR UN ARCHIVO El archivo se puede borrar lo que supone que se borra su nombre del directorio y que el sistema de archivos ha de recuperar los bloques de datos y el espacio que tenía asignado.
  • 57. SERVICIO DE DIRECTORIOS Un directorio es un objeto que relaciona de forma univoca un nombre con un archivo. El servicio de directorios sirve para identificar a los archivos, por tanto ha de garantizar que la relación (nombre-archivo) sea unívoca, es decir un mismo nombre no puede identificar a dos archivos , por el contrario observe que varios nombres se refieren al mismo archivo en este caso son simples sinónimos. ESQUEMA GERARQUICO DE NOMBRES (Visión Lógica) Se diferencia el nombre relativo o local que es el nombre asignando al archivo dentro del subdirectorio en el que esta el nombre del archivo ej. “Ap11” Del nombre o camino absoluto que incluye todos los nombres de todos los subdirectorios que hay que recorrer desde el directorio raíz hasta el objeto ej. “/Textos/Tipo/Sec1/Ap11” VISION FISICA Consiste en unas estructuras de información que permiten relacionar cada nombre lógico con la descripción física del archivo , En definitiva se trata de una tabla NOMBRE-IDENTIFICADOR por cada subdirectorio . El NOMBRE no es mas que el nombre relativo del archivo , mientras que el IDENTIFICADOR es una información que permite localizar la descripción física del archivo.
  • 58. SERVICIO DE DIRECTORIOS Un objeto directorio es básicamente un conjunto de entradas que relacionan nombres y archivos. El servidor de archivos incluye una serie de servicios que permiten manipular directorios. Estos son: CREAR UN DIRECTORIO Crea un objeto directorio y lo sitúa en el árbol de directorios donde se especifique en el nombre , absoluto o relativo, del nuevo directorio. BORRAR UN DIRECTORIO Elimina un objeto directorio de forma que nunca mas pueda ser accesible y borra su entrada del árbol de directorios. Normalmente solo se puede borrar un directorio vacío , es decir un directorio sin entradas. ABRIR UN DIRECTORIO Abre un directorio para leer los datos del mismo, Un directorio debe ser abierto para poder acceder a su contenido. Esta operación devuelve al usuario un identificador , descriptor o manejador temporal que permite su manipulación LEER UN DIRECTORIO Extrae la siguiente entrada de un directorio, abierto previamente , devuelve una estructura de datos como la que define la entrada de directorios. CERRAR UN DIRECTORIO Cierra un directorio, liberando el identificador devuelto en la operación de apertura, así como los recursos de memoria .
  • 59. FASES DE ACTIVACION DE UN SISTEMA OPERATIVO El S.O es un servidor que esta a la espera de que se le encargue trabajo La secuencia normal es mostrada en la siguiente figura: Está ejecutando un proceso A , y en un instante determinado, se solicita la atención del S.O. Este entra en ejecución y salva el estado en le Bloque de control de proceso A (PCB). Seguidamente realiza la tarea solicitada que una vez finalizada entra en acción el planificador, módulo del S.O que selecciona un proceso B para ejecutar. La actuación del S.O finaliza con el activador, módulo que se encarga de restituir los registros con los valores almacenados en el PCB del Proceso B , el instante en que se restituye el contador de programa marca la transición del S.O a la ejecución del proceso B El trabajo del S.O puede provenir de 3 fuentes: 1. Llamadas al sistema provenientes de programas 2. Interrupciones producidas por los periféricos 3. Condiciones de excepción o error del hardware En todos estos casos se deja de ejecutar el proceso en ejecución y se entra a ejecutar el S.O ,los mecanismos para romper la secuencia lineal de ejecución de un SO son dos : Instrucciones de bifurcación y las interrupciones. INSTRUCCIONES DE BIFURCACIÓN Este no es un mecanismo para invocar al S.O puesto que el proceso se ejecuta a nivel usuario y el S.O ha de ejecutar a nivel de núcleo y en espacios de direcciones distintas. Esto significa que los Servicios del S.O no se pueden solicitar mediante una instrucción de máquina CALL . Por lo tanto la activación del S.O solamente se realiza mediante interrupciones . Cuando es un proceso en ejecución el que desea un Servicio ha de utilizar una instrucción TRAP que genera la interrupción respectiva
  • 60.
  • 61. LLAMADAS DE UN SISTEMA OPERATIVO La llamada fork() es el servicio que ofrece el API de POSIX para la creación de un nuevo proceso Int fork() { Para completar la imagen de que se está llamando a una función, el S.O devuelve un valor, int r; como una función real. Al programador le parece, por tanto que invoca al S.O como una Load R8, fork_system_call función , pero eso no es así puesto que lo que hace es invocar a la función que realiza la TRAP solicitud al sistema operativo. LOAD r, R9 Return(r); } El código escrito carga en uno de los registros de la computadora el número que identifica la llamada al sistema (fork_system_call), en el caso de que la llamada incluyera parámetros , esto se pasarían en otros registros o en la pila. A continuación se ejecuta la función TRAP con lo que se transfiere el control al S.O. que accede al contenido del R8 para identificar la llamada a ejecutar y realizar el trabajo. Cuando el control se transfiere de nuevo al proceso que invocó la llamada fork(), se accede al registro R9 para obtener el valor devuelto por la llamada y éste retorna finalizando le ejecución de la función.
  • 62. PASOS DE LLAMADAS A UN SISTEMA • Carga en uno de los registros de la computadora el número que identifica la llamada al sistema (fork_system_call) • Se transfiere el control al S.O. que accede al contenido de R8 • Cuando el control se transfiere de nuevo al proceso que invocó la llamada fork(), se accede al registro R9 para obtener el valor devuelto por la llamada y éste retorna • Finaliza la ejecución
  • 63. INTERFAZ DEL PROGRAMADOR La interfaz del S.O con el programador es la que recupera los servicios y llamadas al sistema que los usuarios pueden utilizar directamente desde sus programas. POSIX Es el estándar de interfaz de los sistemas operativos portables de IEEE basado en el sistema operativo UNIX Esta es una interfaz ampliamente utilizada, se encuentra disponible en todas las versiones de Unix y Linux. También Windows NT ofrece un subsistema que permite programar aplicaciones POSIX