3. 1.1 Definición y Conceptos
Un Sistema Operativo es un programa que actúa de interfaz
entre los dispositivos de hardware y los programas usados
por el usuario.
Los Sistemas Operativos son programas para la
administración eficiente de los recursos del computador
Un SO es un programa que tiene encomendadas una serie
de funciones diferentes cuyo objetivo es simplificar el
manejo y la utilización de la computadora, haciéndolo
seguro y eficiente.
4. 1.1 Definición y Conceptos
El SO esta formado conceptualmente por 3 capas principales:
La capa más cercana al hardware se denomina Núcleo (Kernel) y es la
que gestiona los recursos del sistema y la que suministra la funcionalidad
básica del sistema operativo.
La capa de servicios o llamadas al sistema ofrece a los programas
servicios en forma de una interfaz de programación , es decir, el SO
ofrece una maquina virtual extendida a los programas, lo que facilita la
elaboración de estos, puesto que se apoyan en las funciones que les
suministra el SO.
La capa de interprete de mandatos o Shell suministra una interfaz a
través de la cual el usuario puede dialogar de forma interactiva con la
computadora; el Shell recibe, interpreta y si puede ejecuta la acción
solicitada por el usuario.
5. 1.1 Definición y Conceptos
Usuario
Entrada Salida
Programas de
Solicitud de Aplicación Respuesta a
Servicio los Servicios
Sistema Operativo
Instrucciones de Procesamiento de
Hardware Resultados
Hardware de la
Computadora
Sistema de Cómputo
6. 1.1 Definición y Conceptos
Componentes Básicos de un Sistema Operativo:
1) Gestor de procesos: Encargado de la creación, planificación y
destrucción de procesos.
2) Gestor de memoria: Componente encargado de saber qué partes de
memoria están libres y cuáles ocupadas, así como la asignación y
liberación de memoria según la necesidad de los procesos.
3) Gestor de E/S: Facilita el manejo de los periféricos.
4) Gestor de archivos y directorios: Se encarga del manejo de archivos y
directorios y de la administración del almacenamiento secundario.
5) Comunicación y Sincronización de procesos.
6) Seguridad y Protección. Se encarga de garantizar la protección de los
usuarios y de definir lo que puede hacer cada uno de ellos con los
recursos del sistema.
7. 1.2 Funciones y Características
El Sistema Operativo:
1) Permite la comunicación entre el Usuario y la
Computadora.
Interfaz Gráfica
Iconos
Menú
Ventanas
Línea de Comandos
8. 1.2 Funciones y Características
2) Carga en memoria RAM los programas para su
ejecución.
Administra Compartir
Tareas Información
Archivos
Memoria
Impresión
9. 1.2 Funciones y Características
3) Coordina el trabajo entre el hardware y el resto del
software.
4) Administra el almacenamiento de la información.
10. 1.3 Evolución Histórica
Primera generacion (1945 – 1955)
Su progreso en la construccion de computadoras digitales hasta la
segunda guerra mundial
Bulbos y conexiones
En los años 50 comienzan con transicion entre trabajos
Primer computadora totalmente electronica, economica, cientifica que
funcionaba con bulbos de vacio
Segunda generacion (1955 – 1965)
Aparecen los sistemas operativos en los años 60
Multiprocesadores
Se utilizan varias tecnicas
Multiprocesador
Tiempo real
Tiempo compartido
multiprogramacion
11. Tercera generacion (1965 – 1980)
Gestion de redes NFS
Linux liberacion nucleo
OS/360
Circuitos integrados y multiprogramacion
MS-DOS
Spooling proceso mediante el cual la computadora introduce trabajos en el buffer.
Lenguajes de alto nivel
Lanzamiento oficial de Macintosh
Cuarta generacion (1980 – Presente)
Ambiente amigable y grafico
Netware version 40
Windows 95
UNIX, S.O portable. Multitarea y multiusuario
Windows 98
Windows 2000
Linux Red Hat
Windows XP
Windows NT 4
Windows Vista
Windows 7
Windows Me
Windows 8 rlease edition
IOS
12. 1.4 Clasificación
Monousuarios
Núm. De
Usuarios
Multiusuarios
Monotareas
Núm. de tareas
Multitareas
Sistemas
Operativos
Uniproceso
Núm. De
Simétricos
procesadores
Multiproceso
Asimétricos
Red
Forma de ofrecer
sus servicios
Distribuidos
13. 1.5 Estructura: niveles o estratos de diseño.
Estructura monolítica: es la estructura de
los primeros sistemas operativos constituidos
fundamentalmente por un solo programa Módulo a Módulo d
compuesto de un conjunto de rutinas
entrelazadas de tal forma que cada una puede
llamar a cualquier otra.
Construcción del programa final a base de Módulo b Módulo e
módulos compilados separadamente que se
unen a través del ligador.
Buena definición de parámetros de enlace Módulo c Módulo f
entre las distintas rutinas existentes.
Carecen de protecciones y privilegios al
entrar a rutinas que manejan diferentes
aspectos de los recursos de la computadora.
Son eficientes y rápidos en su ejecución y
gestión, pero no pueden soportar diferentes
ambientes de trabajo o tipos de
aplicaciones.
14. Estructura jerárquica: Se dividió el S.O. en pequeñas
partes, de tal forma que cada una de ellas estuviera
perfectamente definida y con una clara interfaz con el resto
de los elementos.
1. THE (Technische Hogeschool, Eindhoven), se utilizó con
fines didácticos
Multicapa Multics y Unix Interprete
de
Anillos concéntricos o Rings Comandos
Aplicación
de
Capa 5 – Usuario Usuarios Gestión de la información
Capa 4 – Archivos Gestión de memoria
Capa 3 – E/S
Spool Gestión de E/S
Capa 2 – Comunicaciones
Capa 1 – Memoria Gestión
Gestión
Capa 0 – Gestión CPU De
De
Capa 1 – Hardware CPU
CPU
Sistema Jerárquico THE
Organización
Jerárquica (Anillos)
15. Máquina Virtual: Se trata de un sistema operativo
que presenta una interfaz a cada proceso, mostrando
una máquina que parece idéntica a la maquina real
subyacente. Su objetivo es integrar distintos S.O.
dando la sensación de ser varias maquinas diferentes.
Separan la multiprogramación y la maquina extendida.
Su núcleo se denomina monitor virtual y este lleva a
cabo la multiprogramación.
16. Cliente – Servidor: Su objetivo es minimizar el kernel
desplazando el código de todos sus servicios a las capas
superiores y quitarle lo mas que se pueda al S.O.
Para ello, la mayoría de sus funciones se implementan
como procesos de usuario, denominados procesos
servidores, de forma que cuando un proceso de usuario
llamado proceso cliente, necesita un servicio del S.O. lo
que hace es enviar un mensaje al proceso servidor
correspondiente, que realiza el trabajo y devuelve la
respuesta.
17. Orientada al Objeto: Las funciones del sistema son un
tipo de objeto, donde la interacción entre ellos depende de
las capacidades que cada uno tenga para actuar con el otro.
El kernel es el responsable del mantenimiento de las
definiciones de los tipos de objetos soportados y del control
de los privilegios de acceso a los mismos. Cuando un
programa desee realizar una operación sobre un objeto
determinado, deberá ejecutar una llamada al sistema,
indicando qué derechos tiene para poder utilizarlo y qué
operación intenta llevar a cabo. Como resultado de dicha
llamada, el sistema validará la petición y, si puede ser
aceptada, permitirá la realización de dicha operación.
18. 1.6 Núcleo.
El kernel se ejecuta con las interrupciones
desactivadas y es la parte del S. O. más cercana al
hardware, por ello suele estar codificado en
ensamblador o lenguaje máquina, además de estar
residente en memoria principal. El resto del S. O. se
suele programar en lenguajes de alto nivel.
Componentes del núcleo.
Administrador de procesos;
Controlador de interrupciones;
Manejador de la comunicación entre procesos.
19. Administrador de procesos (dispatcher): Se
encarga de asignar los procesadores a los diferentes
procesos, por lo tanto debe actuar cuando se debe
comprobar si es necesario cambiar el proceso que está
activo, es decir en las siguientes situaciones:
Cuando el proceso que esta activo se bloquea;
Cuando un proceso se desbloquea pasando a estado listo
y debido al algoritmo de planificación este puede
desplazar al que esta activo;
Cuando un proceso debe pasar de activo a listo y por lo
tanto otro pasara de listo a activo.
20. Controlador de interrupciones.
Objetivos:
Determinar el origen de la interrupción
Dar servicio a la interrupción
Tipos de interrupciones:
Interrupciones internas: producidas por los propios
procesos;
Interrupciones externas: producidas por elementos
ajenos a los procesos.
21. Funciones básicas del núcleo
a) manipulación de interrupciones;
b) inhabilitación y habilitación de interrupciones;
c) creación y destrucción de procesos;
d) cambio de estado de un proceso;
e) despachar un proceso;
f) comunicación entre procesos;
g) manipulación de los PCBs (Bloques de Control de
Procesos);
h) soporte para servicios de más alto nivel.
22.
23. 2.1 Concepto de proceso.
Un proceso es un programa en ejecución.
Un proceso es una secuencia de acciones derivadas de la
ejecución de una serie de instrucciones. Esto implica que:
un proceso puede requerir la ejecución de uno o varios
programas; y
que un programa puede formar parte de más de un proceso.
Un proceso necesita de ciertos recursos para completar su
tarea, incluye:
tiempo de CPU,
memoria,
archivos,
y dispositivos de E/S,
24. 2.2 Estados y transiciones de los
procesos
Ejecución (Activo). En este estado está el proceso que está siendo
ejecutado por el procesador, es decir, que está en fase de
procesamiento. En esta fase el estado del proceso reside en los
registros del procesador.
• Bloqueado. Un proceso bloqueado está esperando a que ocurra
un evento y no puede seguir ejecutando hasta que suceda el
evento. Una situación típica de proceso bloqueado se produce
cuando el proceso solicita una operación de E/S. Hasta que no
termina esta operación, el proceso queda bloqueado. En esta fase,
el estado del proceso reside en el BCP.
• Listo. Un proceso está listo para ejecutar cuando puede entrar en
fase de procesamiento. Dado que puede haber varios procesos en
este estado, una de las tareas del sistema operativo será seleccionar
aquel que debe pasar a ejecución. El módulo del sistema operativo
que toma esta decisión se denomina planificador. En esta fase, el
estado del proceso reside en el BCP.
25.
26. 2.3 Procesos ligeros: Hilos o hebras
Un proceso ligero, o thread, es un programa en ejecución
(flujo de ejecución) que comparte la imagen de memoria y
otras informaciones con otros procesos ligeros.
Un proceso ligero se define coMo una función cuya
ejecución se puede lanzar en paralelo con otras.
Cada proceso ligero tiene informaciones que le son propias
y que no comparte con otros procesos ligeros. Las
informaciones propias se refieren fundamentalmente al
contexto de ejecución, pudiéndose destacar las siguientes:
Contador de programa.
Pila.
Registros.
Estado del proceso ligero (ejecutando, listo o bloqueado).
27. Todos los procesos ligeros de un mismo proceso
comparten la información del mismo.
En concreto, comparten:
Espacio de memoria.
Variables globales.
Archivos abiertos.
Procesos hijos.
Temporizadores.
Señales y semáforos.
Contabilidad.
28. 2.4 Concurrencia y secuenciabilidad.
La concurrencia es el solapamiento en el tiempo de la
ejecución de varias actividades.
Dos procesos, P1 y P2, se ejecutan concurrentemente si
la primera instrucción de P1 se ejecuta entre la primera
y la última instrucción de P2.
29. 2.5 Niveles, objetivos y criterios de
planificación.
La planificación consiste en un conjunto de políticas y
mecanismos incorporados al S. O. y por los que se rige
el orden en que se completa el trabajo que hay que
realizar. Su objetivo primordial es optimizar el
rendimiento del sistema.
La planificación del procesador es la asignación de los
procesadores físicos a los procesos. La parte del S. O.
encargada de tomar esta decisión se denomina
planificador y el algoritmo que utiliza se llama
algoritmo de planificación o disciplina.
30. Niveles de planificación
Planificación de alto nivel:
— También se denomina Planificación de trabajos.
— Determina a qué trabajos se les va a permitir competir activamente por los
recursos del sistema, lo cual se denomina Planificación de admisión.
Planificación de nivel intermedio:
— Determina a qué procesos se les puede permitir competir por la cpu.
— Responde a fluctuaciones a corto plazo en la carga del sistema y efectúa
“suspensiones” y “activaciones” (“reanudaciones”) de procesos.
— Debe ayudar a alcanzar ciertas metas en el rendimiento total del sistema.
Planificación de bajo nivel:
— Determina a qué proceso listo se le asigna la cpu cuando esta queda disponible
y asigna la cpu al mismo, es decir que “despacha” la cpu al proceso.
— La efectúa el Despachador del Sistema Operativo, el que opera muchas veces
por segundo y reside siempre en el almacenamiento primario.
31.
32. Objetivos:
Ser justo; Todos los procesos son tratados de igual manera, Ningún proceso es
postergado indefinidamente.
Maximizar la capacidad de ejecución; Maximizar el número de procesos
servidos por unidad de tiempo.
Maximizar el número de usuarios interactivos recibiendo unos tiempos
de respuesta aceptables; En un máximo de unos segundos.
Equilibrar el uso de recursos; Favorecer a los procesos que utilizarán
recursos infrautilizados.
Lograr un equilibrio entre respuesta y utilización; La mejor manera de
garantizar buenos tiempos de respuesta es disponer de los recursos suficientes
cuando se necesitan, pero la utilización total de recursos podrá ser pobre.
Evitar la postergación indefinida; Se utiliza la estrategia del
“envejecimiento” , Mientras un proceso espera por un recurso su prioridad debe
aumentar, así la prioridad llegará a ser tan alta que el proceso recibirá el recurso
esperado.
Asegurar las prioridades; Los mecanismos de planificación deben favorecer a
los procesos con prioridades más altas.
Dar preferencia a los procesos que mantienen recursos no compartidos.
33. 2.6 Técnicas de administración del
planificador.
Cíclica o Round-robin: El algoritmo cíclico está
diseñado para hacer un reparto equitativo del tiempo
del procesador, por lo que está especialmente
destinado a los sistemas de tiempo compartido.
34.
35. 3.1 Política y filosofía.
El sistema operativo debe encargarse de realizar un
reparto transparente, eficiente y seguro de los distintos
recursos de la máquina entre los diversos procesos, de
forma que cada uno de ellos crea que «tiene una
máquina para él solo».
36. Objetivos deseables del sistema de gestión de
memoria:
Ofrecer a cada proceso un espacio lógico propio.
Proporcionar protección entre los procesos.
Permitir que los procesos compartan memoria.
Dar soporte a las distintas regiones del proceso.
Maximizar el rendimiento del sistema.
Proporcionar a los procesos mapas de memoria muy
grandes.
37. Política de asignación de espacio
Esta política decide cuál de las zonas libres se debería usar,
intentando conjugar dos aspectos: un buen aprovechamiento de la
memoria y un algoritmo de decisión eficiente.
El mejor ajuste (best-fit). Se elige la zona libre más pequeña donde quepa
el mapa del proceso. A priori, puede parecer la mejor solución. Sin
embargo, esto no es así. Por un lado, se generan nuevos espacios libres
muy pequeños. Por otro lado, la selección del mejor hueco exige
comprobar cada uno de ellos o mantenerlos ordenados por tamaño.
Ambas soluciones conducen a un algoritmo ineficiente,
El peor ajuste (worst-fit). Se elige el hueco más grande, Con ello se
pretende que no se generen nuevos huecos pequeños. Sin embargo, sigue
siendo necesario recorrer toda la lista de huecos o mantenerla ordenada
por tamaño.
El primero que ajuste (first-fit). Aunque pueda parecer sorprendente a
priori, ésta suele ser la mejor política. Es muy eficiente ya que basta con
encontrar una zona libre de tamaño suficiente y proporciona un
aprovechamiento de la memoria aceptable.
Una estrategia de asignación interesante es el sistema buddy,. Está
basado en el uso de listas de huecos cuyo tamaño son potencias de
dos
38. 3.2 Memoria real.
La memoria en un sistema está organizada como una
jerarquía de niveles de almacenamiento, entre los que
se mueve la información dependiendo de la necesidad
de la misma en un determinado instante.
39. 3.3 Organización de memoria
virtual
La técnica de memoria virtual se ocupa de la transferencia de
información entre la memoria principal y la secundaria, La
memoria secundaria está normalmente soportada en un disco (o
partición).
La memoria virtual se implementa sobre un esquema de
paginación, a este dispositivo se le denomina dispositivo de
paginación .
El buen rendimiento del sistema de memoria virtual está basado
en que los procesos presentan la propiedad de proximidad de
referencias. Esta propiedad permite que un proceso genere muy
pocos fallos aunque tenga en memoria principal solo una parte
de su imagen de memoria (conjunto residente).
El objetivo del sistema de memoria virtual es intentar que la
información que está usando un proceso en un determinado
momento (conjunto de trabajo) esté residente en memoria
principal. O sea, que el conjunto residente del proceso contenga
a su conjunto de trabajo.
40. Beneficios del uso de memoria
virtual
Se produce un aumento del grado de multiprogramación al
no ser necesario que todo el mapa de memoria de un
proceso este en memoria principal para poder ejecutarlo.
Este aumento implica una mejora en el rendimiento del
sistema. Sin embargo, si el grado de multiprogramación se
hace demasiado alto, el número de fallos de página se
dispara y el rendimiento del sistema baja drásticamente. A
esta situación se le denomina hiperpaginación.
Se pueden ejecutar programas más grandes que la memoria
principal disponible.