Está en la página 1de 79

Unidad Uno: Introducción a los Sistemas

Operativos
Ing. Alfonso Guijarro Rodríguez, Mgs.

Sistemas Operativos
Contenido

1 Definición y Concepto

2 Funciones y Características

3 Evolución Histórica

4 Clasificación

5 Estructura (niveles o estratos de diseño).

6 Núcleo
¿Qué es un Sistema Operativo?
Esta pregunta no es simple, y procuraremos
responderla a lo largo de todo el curso. Sin embargo
podemos dar algunas definiciones simples.
Un Sistema Operativo es:
1. El código que acompaña la ejecución de
cualquier aplicación.
2. Un programa que actúa como intermediario
entre un usuario y el hardware del computador.
3. Un programa que dirige todos los recursos de
un sistema computacional.
Los Objetivos de un S.O son:
Acercar el sistema computacional al usuario
facilitando su uso.

Usar el hardware de una manera eficiente


La mejor forma de entender un S.O. Es entender
como se construye.
También ayuda a su comprensión el tener una
visión histórica de su desarrollo
Estructura de un Sistema Computacional
 El S. O. Es una de las componentes más importantes de
un sistema computacional.

 Un Sistema Computacional es una plataforma sobre la


cual se construyen los llamados Sistemas de Información,
factor clave de competitividad en cualquier organización.

 Un Sistema Computacional está compuesto de: hardware,


s.o., aplicaciones
Componentes del sistema de cómputacional

Usuario 1 Usuario 2 Usuario N

Aplicaciones

Programas de Sistemas

Sistema Operativo

Hardware

 Hardware - Proveé los componentes básicos de cómputo (CPU,


memoria, dispositivos de E/S).
 Sistema Operativo - Controla y coordina el uso del hardware entre
los varios programas de aplicación para los diferentes usuarios.

 Programas de sistemas- Compiladores, Assembler, Editores,


herramientas de Monitoreo y Mantención

 Aplicaciones - Bases de datos, Juegos, Navegadores, etc.


Observaciones
No existe una definición precisa de un S.O.
 Los S.O. Existen porque existe la necesidad
de resolver problemas usando sistemas
computacionales
Tampoco existe una definición única sobre
qué contiene y qué no contiene un S.O.
Una definición práctica es que un S.O. es el
código qué siempre se ejecuta y acompaña
la ejecución de las aplicaciones
Componentes del Sistema Operativo
Manejador de recursos - administra y aloja los
recursos.

Programa de control - controla la ejecución de


los programas de usuarios y las operaciones de los
dispositivos de entrada/salida.

Kernel - el programa que corre en todo momento


(todo lo demas es programa de aplicación).
Por que necesitamos al Sistema Operativo
• Usuarios: prove interfaces de usuario, interprete de
comandos, estructura de directorios, programas de
utilerias (compiladores, editores, filtros).

• Ambiente de programacion- prove un ambiente de alto


nivel para manejo E/S, manejo de archivos, manejo de
procesos.

• Eficiencia - remplaza al operador en la calendarizacion


de jobs, almacenamiento archivos de E/S, manejo de
concurrencia.
Evolución Historica de los Sistemas Operativos
Evolución (1): Primeros Computadores, década 1940´s
Estructura

• Maquinas ejecutandose desde una consola


• Computadora dedicado a un usuario/ programador a la vez.
• El programa es cargado manualmente por el programador,
usando switches de la consola.
• Tarjetas perforadas o cintas programadas

Primer Software

• Ensambladores, cargadores, linkers , Librerias de subrutinas


comunes
• Compiladores
• Drivers de dispositivos.

Uso ineficiente de recursos

• Máquina cara y permanece bastante tiempo ociosa, debido a


que las personas son lentas. (Baja utilización del CPU)
• Programación & depuración tediosas.
• Mucho tiempo en inicialización del sistema (setup time)
• Cada programa debe incluir código para operar periféricos:
propenso a errores, dependencia de errores.
Evolución Historica de los Sistemas Operativos
Evolución (2): década 1950´s.

Sistemas Batch. Procesamiento se hace en lotes de


tarjetas perforadas o jobs (trabajos).

• El programador no interactúa directamente con el


computador.
• Un job es un lote de tarjetas perforadas por el programador
mediante máquinas especialmente dedicadas para ese
propósito llamadas máquinas perforadoras.
• Reduce el tiempo de inicialización ejecutando en batch jobs
similares.
• Jobs de varios usuarios son ejecutados en secuencia por un
monitor residente. Primer sistema operativo rudimentario.
• Software del sistema: Monitor Residente.
• control inicial en el monitor
• transfiere el control a el primer job
• cuando el job termina se transfiere el control al monitor
• Ejemplo Sistemas de IBM 701 y 704).
Spooling

 La introducción de la tecnología de discos entrega una


solución: en vez de leer del disco y escribir a la impresora, la
CPU interactúa directamente con el disco.
 Si la CPU necesita leer una tarjeta, lee desde un área del
disco. En forma similar cuando necesita imprimir una línea,
la escribe en el disco
 Esta forma de procesamiento se denomina Spooling
(Simultaneous peripheral operation on-line)
 Observaciones
 El Spooling traslapa la entrada y salida de un job con los cálculos
(CPU) de otro job.
 Tiene un efecto directo e importante en el desempeño ya que
mantienen a la CPU y los dispositivos trabajando a su máxima
velocidad
Evolución Historica de los Sistemas Operativos

SPOOL: Operación On-line

Impresora
Cinta

Lector

Impresora
Disco

Procesador Central
Memoria CPU

Canal1 Canal2 Canal3


Evolución Historica de los Sistemas Operativos

Monitor Residente

Tratamiento de
Interrupciones
Controladores de
Dispositivos MONITOR
RESIDENTE
Secuenciador de Jobs

Intérprete del Lenguaje


de control
Límite

Area de programa
de usuario
Evolución Historica de los Sistemas Operativos
Evolución (3): década 1960_1970

 Sistemas de Multiprogramación.
 Monitor residente comienza a llamarse Sistema Operativo.
 Asignación de tiempo de ejecución por ráfagas de CPU. Una
ráfaga es un período de tiempo de uso de CPU y limitado por
tiempos de espera.
 Este debe decidir qué jobs hace avanzar, tratando de maximizar el
rendimiento del computador. Esto se conoce como job
scheduling.
 Se introducen los primeros esquemas de administración de
memoria con particiones y espacio de direcciones lógicos.
 Ventajas: CPU se mantiene mayor tiempo ocupado.
 Desventajas:
 Ausencia de protección entre jobs (en primeras versiones).
 Hardware y S.O. Son más complejos.
 Ejemplos: IBM Systen/360, OS/370.
Sistemas Multiprogramados

 El Spooling mantiene una estructura de datos con todos los jobs


listos para ser ejecutados en un área de disco.

 Esta estructura permite seleccionar cualquier job del conjunto. Con


esta estructura es posible mejorar la utilización de la CPU.

 La selección de un job para su ejecución de un conjunto Se denomina


itineración de job
 La itineración de jobs permite la mutiprogramación.
 La multiprogramación aumenta la utilización de la CPU al organizar
los jobs de manera tal que la CPU siempre tenga algún job que
ejecutar.
 Para esto se mantienen los jobs en memoria principal. El S.O.
Selecciona un job, lo ejecuta y cuando el job debe esperar por E/S, se
selecciona otro job
Evolución Historica de los Sistemas Operativos

Monoprogramación

Ráfaga
de CPU
running wait running

Multiprogramación con dos programas

running wait running

running wait running

running running wait running running


Evolución Historica de los Sistemas Operativos

Diagrama de Estados de un Proceso

fork()
Asigna Memoria,
Idle crea PCB, asigna
(Creación) identificación Zombie

Dispached

Exit
Ready Running
(Listo) (Corriendo)

Wake-up
(despierta) Bloqued
(Read, Write, etc.)
Waiting
(Esperando)
Evolución Historica de los Sistemas Operativos

PCB (Process Control Block) o Descriptor de Proceso

*nextPCB

Registros CPU

PC
Información
administración
de memoria
Información
administración
de E/S

 En Linux, esta estructura de datos se denomina


task_struct.
Evolución Historica de los Sistemas Operativos
Evolución (4): década 1970
 Sistemas de Tiempo Compartido (Time Sharing).
Los sistemas batch multiprogramados permiten usar recursos eficientemente, pero los usuarios no
pueden interactuar con sus aplicaciones.
El tiempo compartido (time sharing) o multitarea es una extensión de la multiprogramación. La CPU
ejecuta múltiples jobs, pero la conmutación de un job a otro ocurre con una frecuencia tal que los
usuarios piensan que interactúan con el programa mientras éste corre
 Trabajo interactivo con el computador a través de terminales.
 Nace el concepto de Proceso.

 Asignación de tiempo de CPU por tajadas de tiempo.

 Ya no se habla de tiempo de despacho de un job, sino que tiempo de respuesta.

 Núcleos monolíticos. Todas las funciones y servicios del sistema operativo están dentro del
núcleo.

 Espacio de direcciones virtuales para cada proceso, utilizando mecanismos de segmentación o


paginación.

 Sistemas Operativos: Unix, VAX/VMS, AS/400.

 Ventaja: Aumento en la productividad de los programadores.

 Desventaja: El procesador es un cuello de botella.


Evolución Historica de los Sistemas Operativos
Diagrama de Estados de un Proceso (2)

fork()

Asigna Memoria,
Idle crea PCB, asigna
(Creación) identificación Zombie

Dispached

Exit
Ready Running
(Listo) (Corriendo)
Time-out
(fin tajada o
Wake-up quantum)
(despierta) Bloqued
(Read, Write, etc.)
Waiting
(Esperando)
Evolución Historica de los Sistemas Operativos
Evolución (5)

 Computadores Personales.

 Fines de los años ´70.

 Aparece el microprocesador.

 Sistema Monousuario.

 Sistemas Operativos: CP/M, MS-DOS, Macintosh,

OS/2, Windows.

 Problema: Dificultad para compartir recursos.


Evolución Historica de los Sistemas Operativos

1980’s. Redes

 Estaciones de Trabajo: (Sun, Vax, Silicon


Graphics).

 Redes de Area Local (Ethernet, Token


Ring, FDDI, ATM), Redes de larga distancia
(Arpanet).

 Redes organizadas como clientes-


servidores.

 Servicios de S.O. Protocolos de


comunicación, encripcion de datos, seguridad,
consistencia en datos distribuidos
Evolución Historica de los Sistemas Operativos

1980’s. Sistemas Distribuidos

 Sistemas Distribuidos - distribuyen el cómputo entre varios


procesadores geográficamente dispersos.

 Sistemas debilmente acoplados - cada procesador tiene su propia


memoria local y el procesador se comunica con los demas
procesadores mediante lineas de comunicación, buses de alta
velocidad y lineas telefónicas.

 Ventajas:
 Compartición de recursos
 Incremento en la velocidad de cómputo
 compartición de carga
 Confiabilidad
 Comunicación
Evolución Historica de los Sistemas Operativos

1980-1990`s. Sistemas Paralelos

Sistemas paralelos - sistemas de múltiples procesadores con mas de 1


procesador con comunicación entre ellos.

Sistema fuertemente acoplado - los procesadores comparten memoria y reloj;


la comunicación usualmente se realiza mediante memoria compartida.

Ventajas:
Incremento de throughput
Economica
Incremento en la confiabilidad
Evolución Historica de los Sistemas Operativos

1990`s-2000.

Computo Paralelo (Teraflops).

PC’s poderosas (1.5 GigaHertz) , Computadoras Multimedia.

Redes de Comunicación de distancia mundial, con envio de imágenes,


grandes cantidades de datos, audio y video.

World Wide Web.

Notebooks utilizando tecnologias de comunicación inalambrica: Computo


Mobil.

Computo Embebido y Robotica.


Evolución Historica de los Sistemas Operativos

1990-2000`s-Sistemas de Tiempo Real


A menudo utilizados como dispositivo de control en aplicaciones dedicadas,
como control de experimentos científicos, sistemas de procesamiento de imagenes
médicas, sistemas de control industrial, etc...

Exige complimiento de restricciones de tiempos.

Sistemas de tiempo real criticos.


Cumplimiento forzoso de plazos de respuesta.
Predecibilidad y analisis de cumplimineto de plazos de respuesta

Sistemas de tiempo real acríticos.


Exigencia “suave” de plazos de respuesta.
Atención lo mas rapido posible a eventos, en promedio.

Ejemplos:
– Sistemas de Control Industrial
– Monitoreo médico
– Control de encendido de motores
– Sistemas de defensa
• El procesamiento se debe hacer con restricciones de tiempo. En caso contrario se
producen fallas
Funciones del sistema operativo
 • Gestor de recursos (cpu, memoria, ...)
 – Asignación y recuperación de recursos
 – Protección de los usuarios
 – Contabilidad/monitorización
 • Máquina extendida (servicios)
 – Ejecución de programas (procesos)
 – Órdenes de E/S
 – Operaciones sobre archivos
 – Detección y tratamiento de errores
 • Interfaz de usuario
 – Shell
Niveles del sistema operativo
núcleo (kernel) es la que gestiona los
recursos hardware del sistema y la que
suministra otra la funcionalidad básica del
sistema operativo. Esta capa ha de
ejecutar en modo núcleo, mientras que las
otras pueden ejecutar en niveles menos
permisivos.

La capa de servicios o llamadas al sistema ofrece a los programas unos


servicios en forma de una interfaz de programación o API (application
programming interface). Desde el punto de vista de los programas, esta
capa extiende la funcionalidad de la computadora, por lo que se suele decir
que el sistema operativo ofrece una máquina virtual extendida a los
programas.
La capa de intérprete de comandos o shell suministra una interfaz a
través de la cual el usuario puede dialogar de forma interactiva con la
computadora. El shell recibe los comandos u órdenes del usuario, los
interpreta y, si puede, los ejecuta. Dado que el shell suele ejecutar en nivel
de usuario
Componentes y Estructura del SO

Gestión de procesos. Encargada de la creación, planificación y destrucción de


procesos.
Gestión de memoria. Componente encargada de saber qué partes de memoria
están libres y cuáles ocupadas, así como de la asignación y liberación de memoria según
la necesiten los procesos.
Gestión de la E/S. Se ocupa de facilitar el manejo de los dispositivos periféricos.
 Gestión de archivos y directorios. Se encarga del manejo de archivos y
directorios y de la administración del almacenamiento secundario.
Comunicación y sincronización en los procesos. Encargada de ofrecer
mecanismos los procesos puedan comunicase y sincronizarse.
Seguridad y protección. Este componente debe encargarse de garantizar la
seguridad de los usuarios y de definir lo que pueden hacer cada uno de ellos con los
recursos del sistema.
Clasificación de los Sistemas Operativos
 Por su Estructura Interna:

 Estructura Modular (Monolítica): el SO se escribe como una colección


de procedimientos.

 Estructura Microkernel: las funciones principales son controladas por


el núcleo (kernel) mientras que la interfaz del usuario es controlada por
el entorno shell.


Clasificación de los Sistemas Operativos
 Por la forma en que ofrecen sus servicios:

 SO por Lotes: Los trabajos se reunían por grupos o lotes. Cuando


el trabajo estaba en ejecución, este tenia el control absoluto de la
maquina. Al terminar cada trabajo, el control era devuelto al SO.

 SO de Tiempo Compartido: Permite que varios programas de


usuario se encuentren al mismo tiempo en la memoria principal,
y el procesador es alternado rápidamente de un trabajo a otro.

 SO de Tiempo Real: Procesan las instrucciones recibidas al


instante, y una vez que han sido procesadas muestra el resultado.
Su característica principal es dar respuestas inmediatas.
Generalmente se utilizan en procesos industriales o de control.
Clasificación de los Sistemas Operativos
 Por la forma en que ofrecen sus servicios:
 SO de Red: Son aquellos sistemas que mantienen dos o mas
computadoras unidades a través de algún medio de comunicación
(físico o no), con el fin de poder compartir los distintos recursos y
la información del sistema
 SO Distribuidos: Colección de sistemas autónomos capaces de
comunicación y cooperación mediante interconexiones hardware
y software.
Proporcionan abstracción de maquina virtual a los usuarios.
Permiten distribuir trabajos, tareas o procesos entre un conjunto
de procesadores, el cual pueden encontrarse en un equipo o en
distintos equipos.
Clasificación de los Sistemas Operativos
 Sistemas Operativos por Servicios:
 Por el numero de Usuarios:
 Monousuarios: Sistemas que atienden a una única tarea de usuario.
 Multiusuarios: Se emplean en redes y cumplen simultáneamente
las necesidades de dos o mas usuarios, que comparten unos mismos
recursos
 Por el numero de Tareas:
 Monotareas: Solo pueden manejar un proceso en cada momento, es
decir ejecutan las tareas una a una.
 Multitareas: Pueden procesar varias tareas al mismo tiempo.
 Por el Numero de Procesadores:
 Uniproceso: Se mantiene un solo procesador
 Multiproceso: Pueden manejar varios procesadores a la vez,
compartiendo la misma memoria y reloj
• Simétricos: Una CPU principal retiene el control global de la
computadora, así como la de los procesadores.
• Asimétricos : No existe una CPU controladora única. Cada
procesador tiene asignado una tarea especifica.
Estructura del sistema operativo
 En función de esta estructura se pueden agrupar los sistemas operativos en
dos grandes grupos: sistemas operativos monolíticos y sistemas operativos
estructurados.
 Sistemas operativos monolíticos
 Un sistema operativo de este tipo no tiene una estructura clara y bien definida.
Todos sus componentes se encuentran integrados en un único programa (el
sistema operativo) que ejecuta en un único espacio de direcciones. En este tipo de
sistemas todas las funciones que ofrece el sistema operativo se ejecuta en un modo
núcleo.
 Estos sistemas operativos han surgido, normalmente, de sistemas operativos
sencillos y pequeños a los que se les ha ido añadiendo un número mayor de
funcionalidades. Esto les ha hecho evolucionar y crece hasta convertirlos en
programas grandes y complejos formados por muchas funciones situadas todas
ellas en un mismo nivel. Ejemplos claros de este tipo de sistemas son MS-DOS y
UNIX
 El problema que plantean este tipo de sistemas radica en lo complicado que es
modificar el sistema operativo para añadir nuevas funcionalidades y servicios. En
efecto, añadir una nueva característica al sistema operativo 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 otras cuando así lo requiera.
Estructura del sistema operativo
 Estructura simple
 Sistemas monousuarios con funcionalidad básica
• (e.g. computadores personales antiguos)
 No existen protecciones ni multiprogramación
 Cualquier falla de programación hace caer al sistema
 Actividad asincrónica se maneja a través derutinas activadas por interrupción
(difícil programar)
 MS-DOS – escrito para proveer la mayor funcionalidad en el menor espacio
 No tiene módulos
 Aunque MS-DOS tiene algo de estructura, sus interfaces y niveles de funcionalidad
no están bien separados
Estructura del sistema operativo
 UNIX – limitado por funcionalidad del hardware, el SO UNIX original tenía una
estructura limitada, con dos partes separadas
 Programas del sistema
 El kernel
• Todo abajo de la interfaz de llamadas al sistema y arriba del hardware
• Provee: sistema de archivos, CPU scheduling, manejo de memoria y otras
operaciones del SO. Un gran número de funciones para una capa.
Estructura del sistema operativo
 Sistemas operativos estructurados
 Cuando se quiere dotar de estructura a un sistema operativo, normalmente se
recurre a dos tipos de soluciones: sistemas por capas y sistemas cliente-
Servidor.
 Sistemas por capas
• En un sistema por capas, el sistema operativo 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.
• La principal ventaja que ofrece este tipo de estructuras es la modularidad y
la ocultación de la información. Una capa no necesita conocer como se ha
implementado la capa sobre la que se construye, únicamente necesita conocer
la interfaz que ofrece. Esto facilita enormemente la depuración y verificación
del sistema, puesto que las capas se pueden ir construyendo y depurando por
separado.
Estructura del sistema operativo
5 El operador

4 Programas del usuario Sistemas Operativo THE


3 Control de entrada/salida

2 Comunicación operador-proceso

1 Administración de la memoria y el disco

0 Asignación procesador y multiprogramación

OS/2
Estructura del sistema operativo
 Modelo cliente-servidor o micronúcleo
• En este tipo de modelo, el enfoque consiste en implementar la mayor
parte de los servicios y funciones del sistema operativo en procesos
de usuario, dejando solo una pequeña parte del sistema operativo
ejecutando en modo núcleo. A esta parte se le denomina micronúcleo
y a los procesos que ejecutan el resto de funciones se les denomina
servidores.
• No hay una definición clara de las funciones que debe llevar a cabo
un micronúcleo. La mayoría incluyen la gestión de
interrupciones, gestión básica de procesos y de memoria y
servicios básicos de comunicación entre procesos. Para solicitar
un servicio en este tipo de sistemas, como por ejemplo crear un
proceso, el proceso de usuario (proceso denominado cliente) solicita
el servicio al servidor del sistema operativo correspondiente, en este
caso al servidor de procesos. A su vez, el proceso servidor puede
requerir los servicios de otros servidores, como es el caso del servidor
de memoria. En este caso, el servidor de procesos se convierte en
cliente del servidor de memoria.
Estructura del sistema operativo
 Modelo cliente-servidor o micronúcleo continuacion…
 Beneficios:
 Más fácil de extender un microkernel
 Más fácil portar el SO a otras arquitecturas
 Más confiable (menos código se ejecuta en modo kernel)
 Más seguro
 Problemas:
 Sobrecarga de comunicación entre los espacios de usuario y kernel

 Ejemplos: windows NT, mac OS


Estructura del sistema operativo

Windows NT

Estructura de Mac OS X
Estructura del sistema operativo
Estructura del sistema operativo
http://www.makelinux.net/kernel_map
Estructura del sistema operativo
Módulos
 La mayoría de los SO modernos implementan módulos de kernel
• Enfoque orientado a objetos
• Cada componente base está separado
• Cada uno habla con los otros a través de interfaces comunes
• Cada uno puede cargarse (al kernel) conforme se necesita
 En general, similar a las capas, pero más flexible
Estructura del sistema operativo
Enfoque modular en Solaris
Estructura del sistema operativo
 Máquinas virtuales
 Una máquina virtual lleva el enfoque de capas a su conclusión
lógica. Trata el hardware y el kernel del SO como si fueran
hardware ambos
 Una máquina virtual ofrece una interfaz idéntica para cualquier
hardware que esté abajo
 El sistema operativo crea la ilusión de múltiples procesos, cada
uno ejecutando en su propio procesador con su propia memoria
(virtual)
 Los recursos de la computadora física se comparten para crear las
máquinas virtuales
• CPU scheduling produce la ilusión de que los usuarios tienen
su propio procesador
• Colas (spooling) y el sistema de archivos pueden ofrecer
lectores de tarjetas e impresoras virtuales
• Una terminal de usuario en un sistema de tiempo compartido,
sirve como la máquina virtual de la consola del operador
Estructura del sistema operativo
Máquinas virtuales cont...

 El concepto de máquinas virtuales provee protección


completa de los recursos del sistema, ya que cada
máquina virtual está aislada de las demás. Sin
embargo, por el aislamiento no pueden compartir
recursos directamente.
 Una máquina virtual es un excelente vehículo para
hacer investigación en SO. El desarrollo se lleva a cabo
en la máquina virtual, sin afectar la operación normal
del sistema.
 El concepto de máquina virtual es difícil de
implementar debido al gran esfuerzo de proveer un
duplicado exacto de la máquina.
Estructura del sistema operativo
 Ejemplos de maquinas Virtuales

 IBM VM: ofrecía a cada usuario su propia máquina virtual no


multiprogramada; las m.v. se planificaban con tiempo compartido.
 Java: los programas compilados en Java corren sobre una máquina
virtual (JVM).
 VMware: capaz de ejecutar al mismo tiempo varias sesiones
windows, Linux, Mac OS X, etc. sobre plataforma PC o Mac.
 Nachos: S.O. que se ejecuta en una máquina virtual MIPS, cuyo
emulador corre sobre Unix.
Estructura del sistema operativo
Ejemplo Maquina Virtual

Máquina no virtual Máquina virtual


Estructura del sistema operativo
Arquitectura de VMware
Estructura del sistema operativo
La máquina virtual Java
Estructura del sistema operativo
 Portabilidad de Java en varias plataformas
Estructura del sistema operativo
 Ambiente de desarrollo Java
Estructura del sistema operativo
Sistemas Operativos basados en JAVA
 JavaOS: proyecto abandonado por SUN
(reemplavado por las API de JME).
 Jnode.– Máquina Virtual y Sistema Operativo
http://www.jnode.org/
 Jx.– Kernel mas AWT
http://www4.informatik.uni-erlangen.de/Projects/JX/
Estructura del sistema operativo
jnode
Estructura del sistema operativo
JX
Estructura del sistema operativo
El sistema operativo JX
Núcleo del sistema operativo
Proporciona la funcionalidad básica del SO
Es la parte más dependiente del hw de todo el SO
Suele permanecer en el almacenamiento primario
porque su código se ejecuta muy frecuentemente
proporciona una serie de servicios a las capas
superiores del sistema.
Procesos usuario

Proceso S.O.
NUCLEO
| Hardware
Núcleo del sistema operativo
Funciones básicas del núcleo
 Proporcionar el entorno adecuado para la
existencia de procesos
• Tratamiento de interrupciones
• Conmutación del procesador entre procesos
(soporte al diagrama de estados)
• Mecanismos básicos de comunicación y
sincronización entre procesos
• Carga inicial y activación de la configuración del
sistema
Núcleo del sistema operativo
Tratamiento de interrupciones:
 El núcleo transforma las interrupciones en
eventos de más alto nivel (p. ej. mensajes)
 El núcleo determina qué proceso espera una
interrupción y el envía un mensaje
 Cuando el hardware detecta una interrupción, el
control se transfiere a este módulo,
 el cual analiza el carácter de la interrupción y
toma las acciones apropiadas:
• Transferir el control a otro módulo del S. O.
• Iniciar otro programa
• Continuar la ejecución del programa
interrumpido
Núcleo del sistema operativo
Conmutación de CPU entre procesos
 Los procesos de usuario pasan por varios estados
durante su tiempo de vida en el sistema
 El núcleo proporciona los mecanismos de
conmutación de la CPU entre procesos
 El núcleo transfiere el control al programa que el
planificador ha determinado para que sea el próximo
en ejecutarse.
 La comunicación entre programas se logra
manteniendo una cola de mensajes en espera para cada
uno de los programas activos.
 El núcleo recibe los mensajes y los va almacenando en
la cola apropiada al destino en cuestión, para
distribuirlos cuando el programa destino se active.
Núcleo del sistema operativo
Núcleo del sistema operativo
Comunicación y sincronización entre procesos
 El núcleo proporciona mecanismos para que
los procesos puedan intercambiar información
y sincronizarse
 Mecanismos:
• Señales
• Semáforos
• Mensajes
• RPCs (remote procedure calls)
Arranque de la Computadora: ¿Cómo cargar el
núcleo?
Fase Operación
Iniciar ROM Test del hardware
Carga de la rutina de
bootstraping en memoria.
Rutina de Boostraping (booteo) Carga en memoria de
componentes del SO.
Inicialización del Sistema Test de integridad del sistema
Operativo de archivos.
Crear estructuras de datos
internas.
Arranque de procesos
demonios del sistema
(swapper, init, pager, etc.)
Funcionamiento Aceptar conexiones de usuarios
locales y/o remotos.
POST SISTEMA OPERATIVO
COMANDOS DOS
Comandos para ejecutar programas y herramientas de Windows 10, 8 y 7.

Este comando abrirá Símbolos del sistema de


CMD CALC Este comando abrirá la calculadora de Windows
Windows
Este comando abrirá el administrador de tareas de SNIPPINGTOO Este comando abrirá la herramienta de captura de
TASKMGR
Windows L pantallas y recortes de Windows

Este comando abrirá la herramienta de eliminación de


MRT NOTEPAD Este comando abrirá el Bloc de Notas de Windows
software malintencionado de Windows

Este comando mostrará la información del sistema WRITE Este comando abrirá la herramienta Wordpad de
MSINFO32
Windows y de tu ordenador o Wordpad Windows
Este comando abrirá el restaurador del sistema Este comando abrirá el editor de imágenes Paint
RSTRUI MSPAINT
Windows de Windows
Este comando abrirá mapa de caracteres de
SNDVOL Este comando abrirá el mezclador de volumen CHARMAP
Windows
Este comando abrirá editor de caracteres privados de
EUDCEDIT WAB Este comando abrirá los contactos de Windows
Windows
Este comando abrirá el marcador de teléfono de Este comando abrirá el navegador Internet
DIALER IEXPLORE
Windows Explorer de Windows
Este comando abrirá el explorador de archivos de
MAGNIFY Este comando abrirá la Lupa de Windows EXPLORER
Windows

https://www.downloadsource.es/todos-los-comandos-para-ejecutar-en-windows-10-8-y-7/n/8162/
COMANDOS DOS
Comandos para ejecutar programas y herramientas de Windows 10, 8 y 7.
Este comando abrirá la herramienta Windows Easy
TABTIP Este comando abrirá el panel de escritura de Windows MIGWIZ
Transfer

Este comando abrirá la herramienta comprobador


OSK Este comando abrirá el teclado virtual de Windows SIGVERIF
de firmas de archivos

Este comando abrirá la información del sistema y


STIKYNOT Este comando abrirá las notas rápidas de Windows WINVER
versión de Windows

Este comando abrirá la transferencia de archivos


JOURNAL Este comando abrirá Windows Journal FSQUIRT por Bluetooth en Windows (si hay unidad
Bluetooth)

Este comando abrirá el editor de video Windows Este comando abrirá asistente de archivos auto-
MOVIEMK IEXPRESS
Movie Maker extraíbles en Windows

Este comando abrirá el centro de movilidad de


WMPLAYER Este comando abrirá Windows Media Player MBLCTR
Windows

Este comando abrirá el lector de DVD para su Este comando abrirá la Asistencia remota de
DVDPLAY MSRA
reproducción Windows

SOUNDRECOR Este comando abrirá la grabadora de sonidos de Este comando abrirá herramienta de conexión a
MSTSC
DER Windows escritorio remoto de Windows

Este comando abrirá la herramienta de diagnóstico


WINCHAT Este comando abrirá los ajustes de altavoz MSDT
para soporte técnico de Microsoft

Este comando abrirá el editor de texto Microsoft


WINWORD
Word si está instalado en Windows
Arranque de la Computadora: ¿Cómo cargar el
núcleo?
 El RESET carga valores predefinidos en los registros
 Contador de Programa <- dirección de arranque del cargador ROM
 Se ejecuta el cargador ROM del sistema
 Test del sistema para detectar su caracteristicas (ej. mem. Ppal.
Disponible o los periféricos instalados)
 Trae a memoria el boot del SO

 En el caso de la computadora de tipo PC la ROM contiene, además


del programa iniciador, software de E/S denominado (BIOS)
Arranque de la Computadora: ¿Cómo cargar el
núcleo?

El SO está almacenado en el disco


Arranque de la Computadora: ¿Cómo cargar el
núcleo?
 El cargador ROM carga el sector de boot del SO y le da
control
 El boot del SO carga el SO residente y da control al
programa de arranque del SO, que:
 Comprueba el hardware
 Comprueba el sistema deArchivos
 Establece las tablas del SO
 Crea procesos (según el tipo de SO)
• Proceso INIT
• Procesos o tareas del sistema (demonios)
• Procesos de login (uno por terminal)
 Tras la autenticación, el proceso login se convierte en
shell
Administrar permisos
 Cada contenedor y objeto de la red tiene asignada información de
control de acceso. Esta información se denomina descriptor de
seguridad y controla el tipo de acceso permitido a usuarios y
grupos. Los permisos se definen en el descriptor de seguridad de un
objeto. Se asocian o asignan a usuarios y grupos específicos.

 Cuando se es miembro de un grupo de seguridad que está asociado a


un objeto, se tiene cierta capacidad para administrar los permisos de
ese objeto. En el caso de los objetos que se poseen, el control es total.
Puede utilizar distintos métodos, como Servicios de dominio de
Active Directory (AD DS), Directiva de grupo o listas de control de
acceso, para administrar distintos tipos de objetos
Permisos y descriptores de seguridad
 Cada contenedor y objeto de la red tiene información de control de acceso
adjunta. Esta información se denomina descriptor de seguridad y controla el
tipo de acceso permitido a usuarios y grupos. El descriptor de seguridad se
crea automáticamente junto con el contenedor u objeto que se crea. Un
ejemplo típico de objeto con un descriptor de seguridad es un archivo.

 Los permisos se definen en el descriptor de seguridad de un objeto. Se


asocian o asignan a usuarios y grupos específicos. Por ejemplo, para el
archivo Temp.dat, el grupo de cuentas predefinidas de administrador
podría tener asignados permisos para leer, escribir y eliminar,
mientras que el grupo de operadores de copia de seguridad sólo
permisos para leer y escribir.

 Cada asignación de permisos a un usuario o grupo se representa en el


sistema como una entrada de control de acceso (ACE). Al conjunto
completo de entradas de permiso de un descriptor de seguridad se le
denomina conjunto de permisos o lista de control de acceso (ACL). De
esta forma, para un archivo denominado Temp.dat, el conjunto de permisos
incluye dos entradas de permiso: una para el grupo de cuentas predefinidas
de administrador y otra para el grupo de operadores de copia de seguridad.
Permisos de archivos y carpetas
 En la siguiente tabla se muestran las limitaciones de acceso para cada conjunto de
permisos NTFS especiales.
Mostrar el
Permisos
Control total Modificar Leer y ejecutar contenido de la Lectura Escritura
especiales
carpeta
Recorrer carpeta /
x x x x
Ejecutar archivo
Listar carpeta /
x x x x x
Leer datos
Atributos de
x x x x x
lectura
Atributos
extendidos de x x x x x
lectura
Crear archivos /
x x x
Escribir datos
Crear carpetas /
x x x
Anexar datos
Atributos de
x x x
escritura
Atributos
extendidos de x x x
escritura
Eliminar
subcarpetas y x
archivos
Eliminar x x
Permisos de
x x x x x x
lectura
Cambiar permisos x
Tomar posesión x
Sincronizar x x x x x x

También podría gustarte