Publicado el 11 de Agosto del 2020
491 visualizaciones desde el 11 de Agosto del 2020
671,9 KB
141 paginas
Creado hace 19a (07/10/2005)
Sistemas Operativos
Universidad Tecnológica Nacional - FRBA
Técnicas Digitales III
Autor: Alejandro Furfaro
1
Introducción
1 Sistema Operativo ¿Que es?
1 Es un programa de control que se ocupa de:
2 Administrar los recursos de la computradora.
2 Administrar la ejecución de los diferentes programas en muchos casos
pueden ser de diferentes usuarios.
2 Facilitar la tarea del programador permitiendole acceso a los recursos de
manera independiente del hardware.
2 Proveer servicios a los programas de aplicación a través de un conjunto de
llamadas standard.
1 Estas acciones se resuelven a través de una implementación que puede
representarse en capas:
Aplicaciones
Utilidades / Servicios
Sistema Operativo
Hardware
Programador de Aplicaciones
Programador de Sistemas
Autor: Alejandro Furfaro
2
Clasificación de los Sistemas
Operativos
1 Sistemas Real Time:
2Se utilizan para sistemas de control industriales, centrales de
conmutación, instrumentación científica.
2Por lo general tienen una muy pobre capacidad de interfaz con el
usuario, no tienen utilitarios.
2Su fortaleza consiste en administrar los recursos de la computadora, de
modo de ejecutar una operación en particular en la misma cantidad de
tiempo cada vez que ocurre el evento que la dispara. Concepto even-
driven.
2En el tipo de aplicaciones que resuelven estos sistemas operativo, si una
parte se mueve mas rápido solo porque los recursos están disponibles
puede generar resultados tan catastróficos como si no se mueve porque
el recurso está ocupado.
2Ejemplos de implementaciones
i QNX
i RT-Linux
Autor: Alejandro Furfaro
3
Clasificación de los Sistemas
Operativos
1Monotarea - Monousuario
2 Están preparados para ejecutar solo una tarea a la vez. no puede
ejecutar mas de una en forma concurrente.
2 Interfaz para un solo usuario, (una sola sesión de trabajo).
2 Transfiere el control de la máquina a la aplicación que va a
ejecutarse, y solo interviene a demanda de ésta mediante alguna
llamada a los servicios de su kernel, o cuando la aplicación
finaliza y devuelve el control.
2 El viejo MS-DOS (sucesor del mas viejo aún CPM/86), es el mas
difundido de este tipo de sistemas.
2 Un ejemplo muchísimo mas actual, útil, y eficiente de este tipo de
sistemas es el Palm OS que corre en las computadoras de mano
Palm Pilot. Aquí no hay programas residentes y se tiene un
sistema operativo con una interfaz de usuario muy cómoda que
permite ejecutar aplicaciones de a una por vez.
Autor: Alejandro Furfaro
4
Clasificación de los Sistemas
Operativos
1 Multitarea Monousuario
2 Hoy en día es habitual utilizar estos sistemas operativos en las PC de
escritorio.
2 Interfaz para un solo usuario, pero pueden mantener en memoria
múltiples aplicaciones en forma estable y dentro de un entorno de
protección (algunos con mas suerte que otros...)
2 Es habitual descargar correo de Internet o bajar un archivo extenso
durante minutos mientras se trabaja en la redacción de un documento, o
en la escritura de un programa de aplicación, y hasta se chequea el
estado de una unidad de disco , y se realiza un backup de información,
todo a la vez.
2 Ejemplos habituales de este tipo de sistemas.
i Windows XP,
i NT Workstation,
i 2000 Workstation,
i OS/2,
i Machintosh,
i Linux o cualquier UNIX instalado como Workstation
Autor: Alejandro Furfaro
5
Clasificación de los Sistemas
Operativos
1 Multiusuario
2 Esta es la forma mas avanzada de los sistemas operativos, y curiosamente
la que primó en los sistemas pioneros como UNIX.
2 La falta de capacidad del hardware de por entonces (1969) hizo que se
implementasen versiones mas simplificadas para usuarios individuales.
2 Aquí la interfaz de usuario soporta múltiples sesiones. Esto por extensión
implica que tiene capacidades multitarea, ya que con solo ejecutarse un
proceso por usuario se tiene mas de una tarea en ejecución en la memoria
del sistema.
2 Estos sistemas son los mas poderosos y normalmente los mas eficientes:
MVS, para los mainframes, UNIX (o cualquiera de sus versiones free como
LINUX, o free BSD, por ejemplo) son los mejores exponentes de este tipo de
sistemas.
2 Microsoft tiene versiones denominadas Server de Windows XP 2000, y una
evolución de 2000, denominada 2003 que soporta al procesador Itanium.
Autor: Alejandro Furfaro
6
Funciones de un Sistema Operativo
1 Gestión del procesador
2 Gestión del tiempo de procesamiento para cada tarea (scheduling de
procesos).
1 Gestión de la Memoria.
2 Asignación de memoria RAM para las aplicaciones aplicando
criterios basados en la MMU del procesador.
2 Gestión de la Memoria Virtual
2 Gestión de la memoria cache
1 Gestión de los dispositivos de E/S.
2 Acceso al hardware de manera transparente para las aplicaciones.
2 Manejo de la concurrencia de acceso en sistemas multiusuario o
multitarea especialmente
Autor: Alejandro Furfaro
7
Funciones de un Sistema Operativo
1 Gestión del storage
2 (File Systems en los medios masivos de almacenamiento: discos
rígidos, CD-ROMs, DVDs).
1 Interfaz para las Aplicaciones.
2 Colección de llamadas para ejecutarse desde los programas de
aplicación para acceder a servicios brindados pro código del sistema
operativo. Se las conoce como System Calls.
2 En los multitarea se manejan mediante este subsistema, los
diferentes niveles de privilegio que posea el Sistema Operativo (y
que dependen del procesador utilizado en el sistema)
1 Interfaz para los usuarios.
2 Manejo de interfaces sencillas para usuarios no expertos
i GUI
i Texto
i Combinación de ambas
Autor: Alejandro Furfaro
8
Modelo derivado de las funciones
Aplicaciones de usuario
Interfaz de aplicaciones
(API o System Call)
S
ervicio
s d
e
vic
Driv
e
ers
D
e E/S
Hardware
Buffers
de E/S
File System
Manager
Gestión de Procesos
r
e
l
u
d
e
h
c
S
G
e
stió
n d
e M
e
m
oria
Autor: Alejandro Furfaro
Programas de Aplicación
y Utilitarios
Ejecutan en el menor
nivel de privilegio
Capa de interfaz para
acceso a los servicios
del S.O. Por parte de las
aplicaciones
KERNEL
Hardware
(lo que golpeamos a
causa de los
estándares de calidad
de algunos S.O.’s ....)
9
Linux: Introducción
1 Sistema Operativo Unix-like
1 Basado en POSIX (Portable OS based on UNIX)
1 Kernel monolítico (programa único +módulos)
2 Opuesto a los Sistemas MicroKernel que reinaron en los 70’s.
1 Diseñado bajo el concepto Lightweight Processes (LWP)
1 Nonpreemptive
2 No puede intercalar arbitrariamente flujos de ejecución mientras está en
modo privilegiado.
2 Solaris 2.x y Mac 3.0 son full preemptive
1 Soporta SMP (Symetric MultiProcessing)
1 Soporta varios File Systems (IBM AIX, SGI Irix, FAT32, etc)
1 Puede ser muy pequeño. Se puede ajustar a un floppy 3”1/2
1 Es libre. Podemos intslarlo y modificar su código sin otra limitación que
nuestro hardware.
1 Versiones. Se representan con tres números separados por puntos. Ej:
2.4.18, o 2.5.22. El primero es la Versión. El segundo indica si es un
kernel estable (par) o en desarrollo (impar). El tercero es el release.
Autor: Alejandro Furfaro
10
El Kernel
1 Es el principal programa del SO
1 Actualmente soportado por las siguientes arquitecturas:
2 ARM (ARM based Computers)
2 Alpha (Compaq)
2 Intel (ia32 e ia64-Itanium)
2 Familia 68K (Motorola)
2 MIPS (Silicon Graphics)
2 Power PC
2 Sparc y Ultra Sparc (32 y 64 bits Sun Microsystems)
2 S390 (IBM)
1 Aprovecha las capaciades del hardware
2 Maneja el acceso a los recursos hardware específicos. A través de
2 Provee servicios de acceso al hardware a los programas de usuario.
Device Drivers.
1 Es reentrante
2 Múltiples procesos acceden al kernel de manera simultánea.
Autor: Alejandro Furfaro
11
El Kernel
1 Maneja niveles de Protección
2 Ejecución en modo Kernel.
2 Ejecución en modo User.
2 Maneja Stacks separados.
Proceso 1
Proceso
2
Proceso 3
(Accede a una
página de memoria
no presente)
Proceso 4
Modo
Usuario
Modo
Kernel
l
e
d
o
i
c
i
v
r
e
S
a
m
e
t
s
i
S
e
d
n
ó
i
c
p
u
r
r
e
t
n
I
r
e
m
i
t
i
a
n
g
á
P
e
d
o
l
l
a
F
System Call
System Call
Handler
Handler
Scheduler
Scheduler
Exception
Exception
Handler
Handler
Device
Device
Driver
Driver
n
u
a
o
t
n
e
i
m
n
ó
i
c
p
u
r
r
e
t
n
i
r
e
u
q
e
R
I
/
r
e
v
i
r
d
o
v
i
t
i
s
o
p
s
i
d
n
u
e
d
s
e
d
Autor: Alejandro Furfaro
12
Modelo:
Manejo de Memoria
Dirección Lógica
Segmento:Desplazamiento
Unidad de
Unidad de
Segmentación
Segmentación
Dirección Lineal
Unidad de
Unidad de
Paginación
Paginación
Autor: Alejandro Furfaro
Dirección Física
13
Manejo de Memoria: Tabla GDT
Segmentación: Basada en Modelo FLAT
1 Descriptores en GDT
2 Kernel Code Segment (KCS)
2 Kernel Data Segment (KDS)
2 User Code Segment (UCS)
2 User Data Segment (UDS)
1 Los cuatro segmentos tienen:
d
e
c
n
a
v
d
A
r
e
w
o
P
t
n
e
m
e
g
a
n
a
M
Autor: Alejandro Furfaro
2 Base = 0x00000000
2 Limit = 0xfffff
2 G (granularity flag) = 1, para expresar el tamaño
del segmento en paginas de 1024 bytes.
2 S (system flag) = 1, para segmentos de código
normales.
2 Type = 0xA, para segmentos de código que se
puedan leer y ejecutar, o 0x2 para segmentos de
datos de lectura / escritura.
2 DPL (Descriptor Privilege Level): 0 para Modo
Kernel (KCS y KDS), o 3 para Modo Usuario (UCS
y UDS)
2 D/B (32-bit address flag) = 1. Direcciones con
offset de 32 bits
14
Manejo de Memoria : Tabla GDT
1 Descriptores de Sistema
2 Task State Segment Descriptor (TSSD): Uno por cada procesador.
i Limite =0xEB (236 bytes).
i S = 1, DPL = 00, Tipo = 9 u 11 (TSS de 32 bits Available / Busy )
i Dirección Base
init_tss
CPU#0_TSSD
CPU#1_TSSD
CPU#n_TSSD
i Se aplian las TSS de cada CPU en un array llamado init_tss
2 LDT Descriptor: uno genérico compartido por todos los procesos. El
kernel de Linux no usa LDT.
i Contiene un descriptor Null.
i Dirección base: Se almacena en la de
Comentarios de: Sistemas Operativos (0)
No hay comentarios