PDF de programación - Sistemas Operativos

Imágen de pdf Sistemas Operativos

Sistemas Operativosgráfica de visualizaciones

Publicado el 11 de Agosto del 2020
398 visualizaciones desde el 11 de Agosto del 2020
671,9 KB
141 paginas
Creado hace 18a (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
  • Links de descarga
http://lwp-l.com/pdf18043

Comentarios de: Sistemas Operativos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad