unidad 1 completo

19
U N I D A D 1 ELABORADO POR: FLOR DE LIZ LAURIANO GUTIERREZ CATEDRÁTICO: TOLEDO TORRES JACINTO MATERIA: SISTEMAS OPERATIVOS 1 SEPTIMO SEMESTRE GRUPO “4S

Upload: floresitalagu

Post on 23-Feb-2017

50 views

Category:

Education


0 download

TRANSCRIPT

U N I D A D 1

ELABORADO POR:

FLOR DE LIZ LAURIANO GUTIERREZ

CATEDRÁTICO:

TOLEDO TORRES JACINTO

MATERIA:

SISTEMAS OPERATIVOS 1

SEPTIMO SEMESTRE

GRUPO “4S”

1.1 DEFINICION Y CONCEPTO DE UN SISTEMA OPERATIVO

¿QUÉ ES UN SISTEMA OPERATIVO?

Los sistemas operativos difieren de los programas de usuario (es decir, de aplicación) en varias cuestiones además del lugar en el que residen. En particular, son enormes, complejos y de larga duración.

Se de una manera especial. En ciertos sistemas, la idea se lleva hasta el extremo y partes de lo que tradicionalmente se considera el sistema operativo (por ejemplo, el sistema de archivos) se ejecutan en el espacio del usuario. En dichos sistemas es difícil trazar un límite claro. Todo lo que se ejecuta en modo kernel forma, sin duda, parte del sistema operativo, pero podría decirse que algunos programas que se ejecutan fuera de este modo también forman parte del mismo sistema, o por lo menos están estrechamente asociados a él.

Es difícil definir qué es un sistema operativo aparte de decir que es el software que se ejecuta en modo kernel (además de que esto no siempre es cierto). Parte del problema es que los sistemas operativos realizan dos funciones básicas que no están relacionadas: proporcionar a los programadores de aplicaciones (y a los programas de aplicaciones, naturalmente) un conjunto abstracto de recursos simples, en vez de los complejos conjuntos de hardware; y administrar estos recursos de hard- ware.

En resumen, se podría decir que los Sistemas Operativos son un conjunto de programas que crean la interfaz del hardware con el usuario, y que tiene dos funciones primordiales, que son:

• Gestionar el hardware.- Se refiere al hecho de administrar de una forma más eficiente los recursos de la máquina.

• Facilitar el trabajo al usuario.-Permite una comunicación con los dispositivos de la máquina.

1.2 FUNCIONES Y CARACTERÍSTICAS DE LOS SISTEMAS

OPERATIVOS.

FUNCIONES DE LOS SISTEMAS OPERATIVOS.

1.- Aceptar todos los trabajos y conservarlos hasta su finalización.

2.- Interpretación de comandos: Interpreta los comandos que permiten al

usuario comunicarse con el ordenador.

3.- Control de recursos: Coordina y manipula el hardware de la computadora,

como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse.

4.- Manejo de dispositivos de E/S: Organiza los archivos en diversos

dispositivos de almacenamiento, como discos flexibles, discos duros, discos

compactos o cintas magnéticas.

5.- Manejo de errores: Gestiona los errores de hardware y la pérdida de datos.

6.- Secuencia de tareas: El sistema operativo debe administrar la manera en que

se reparten los procesos. Definir el orden. (Quien va primero y quien después).

7.- Protección: Evitar que las acciones de un usuario afecten el trabajo que está

realizando otro usuario.

8.- Multiacceso: Un usuario se puede

conectar a otra máquina sin tener que

estar cerca de ella.

9.- Contabilidad de recursos:

establece el costo que se le cobra a un

usuario por utilizar determinados

recursos.

CARACTERÍSTICAS DE LOS SISTEMAS OPERATIVOS.

En general, se puede decir que un Sistema Operativo tiene las siguientes

características:

• Conveniencia. Un Sistema Operativo hace más conveniente el uso de una

computadora

• Eficiencia. Un Sistema Operativo permite que los recursos de la computadora

se usen de la manera más eficiente posible.

• Habilidad para evolucionar. Un Sistema Operativo deberá construirse de

manera que permita el desarrollo, prueba o introducción efectiva de nuevas

funciones del sistema sin interferir con el servicio.

• Encargado de administrar el hardware. El Sistema Operativo se encarga de

manejar de una mejor manera los recursos de la computadora en cuanto a

hardware se refiere, esto es, asignar a cada proceso una parte del procesador

para poder compartir los recursos.

• Relacionar dispositivos (gestionar a través del kernel). El Sistema

Operativo se debe encargar de comunicar a los dispositivos periféricos, cuando

el usuario así lo requiera.

• Organizar datos para acceso rápido y seguro.

• Manejar las comunicaciones en red. El Sistema Operativo permite al usuario

manejar con alta facilidad todo lo referente a la instalación y uso de las redes

de computadoras.

• Procesamiento por bytes de flujo a través del bus de datos.

• Facilitar las entradas y salidas. Un Sistema Operativo debe hacerle fácil al

usuario el acceso y manejo de los dispositivos de Entrada/Salida de la

computadora.

1.3 Evolución Histórica

Para tratar de comprender los

requisitos de un Sistema Operativo y el

significado de las principales

características de un Sistema

Operativo contemporáneo, es útil

considerar como han ido

evolucionando estos con el tiempo.

Existen diferentes enfoques o

versiones de cómo han ido

evolucionando los Sistemas

Operativos La primera de estas versiones podría ser esta:

En los 40's, se introducen los programas bit a bit, por medio de interruptores

mecánicos y después se introdujo el lenguaje máquina que trabajaba por tarjetas

perforadas.

Con las primeras computadoras, desde finales de los años 40 hasta la mitad de

los años 50, el programador interactuaba de manera directa con el hardware de la

computadora, no existía realmente un Sistema Operativo; las primeras

computadoras utilizaban bulbos, la entrada de datos y los programas se realizaban

a través del lenguaje maquina (bits) o a través de interruptores.

Durante los años 50's y 60's.- A principio de los 50's, la compañía General's Motors

implanto el primer sistema operativo para su IBM 170. Empiezan a surgir las tarjetas

perforadas las cuales permiten que los usuarios (que en ese tiempo eran

programadores, diseñadores, capturistas, etc.), se encarguen de modificar sus

programas. Establecían o apartaban tiempo, metían o introducían sus programas,

corregían y depuraban sus programas en su tiempo. A esto se le llamaba trabajo en

serie. Todo esto se traducía en pérdida de tiempo y tiempos de programas

excesivos.

En los años 60's y 70's se genera el circuito integrado, se organizan los trabajos y

se generan los procesos Bach (por lotes), lo cual consiste en determinar los trabajos

comunes y realizarlos todos juntos de una sola vez. En esta época surgen las

unidades de cinta y el cargador de programas, el cual se considera como el primer

tipo de Sistema Operativo.

En los 80's, inicio el auge de la INTERNET en los Estados Unidos de América. A

finales de los años 80's comienza el gran auge y evolución de los Sistemas

Operativos. Se descubre el concepto de multiprogramación que consiste en tener

cargados en memoria a varios trabajos al mismo tiempo, tema principal de los

Sistemas Operativos actuales.

Los 90's y el futuro, entramos a la era de la computación distribuida y del

multiprocesamiento a través de múltiples redes de computadoras, aprovechando el

ciclo del procesador.

Se tendrá una configuración dinámica con un reconocimiento inmediato de

dispositivos y software que se añada o elimine de las redes a través de procesos de

registro y localizadores.

La conectividad se facilita gracias a estándares y protocolos de sistemas abiertos

por organizaciones como la Organización Internacional de normas, fundación de

software abierto, todo estará más controlado por los protocolos de comunicación

OSI y por la red de servicios digital ISDN.

Se ha desarrollado otra versión, la cual se ha hecho en base a etapas o

generaciones:

1a. Etapa (1945-1955): Bulbos y conexiones.

Después de los infructuosos esfuerzos de Babbage, hubo poco progreso en la

construcción de las computadoras digitales, hasta la Segunda Guerra Mundial. A

mitad de la década de los 40's, Howard Aiken (Harvard), John Von Newman

(Instituto de Estudios Avanzados, Princeton), J. Prespe R. Eckert y Williams

Mauchley (Universidad de Pennsylvania), así como Conrad Zuse (Alemania), entre

otros lograron construir máquinas de cálculo mediante bulbos. Estas máquinas eran

enormes y llenaban cuartos completos con decenas de miles de bulbos, pero eran

mucho más lentas que la computadora casera más económica en nuestros días.

Toda la programación se llevaba a cabo en lenguaje de maquina absoluto y con

frecuencia se utilizaban conexiones para controlar las funciones básicas de la

máquina. Los lenguajes de programación eran desconocidos (incluso el lenguaje

ensamblador). No se oiga de los Sistemas Operativos el modo usual de operación

consistía en que el programador reservaba cierto periodo en una hoja de

reservación pegada a la pared, iba al cuarto de la máquina, insertaba su conexión

a la computadora y pasaba unas horas esperando que ninguno de los 20,000 o más

bulbos se quemara durante la ejecución. La inmensa mayoría de los problemas eran

cálculos numéricos directos, por ejemplo, el cálculo de valores para tablas de senos

y cosenos.

A principio de la década de los 50's la rutina mejoro un poco con la introducción de

las tarjetas perforadas. Fue entonces posible escribir los programas y leerlas en vez

de insertar conexiones, por lo demás el proceso era el mismo.

2a. Etapa. (1955-1965): Transistores y Sistemas de Procesamiento por lotes.

La introducción del transistor a mediados de los años 50's modifico en forma radical

el panorama. Las computadoras se volvieron confiables de forma que podían

fabricarse y venderse a clientes, con la esperanza de que ellas continuaran

funcionando lo suficiente como para realizar un trabajo en forma.

Dado el alto costo del equipo, no debe sorprender el hecho de que las personas

buscaron en forma por demás rápidas vías para reducir el tiempo invertido. La

solución que, por lo general se adoptó, fue la del sistema de procesamiento por

lotes.

3ra Etapa (1965-1980): Circuitos integrados y multiprogramación.

La 360 de IBM fue la primera línea principal de computadoras que utilizo los circuitos

integrados, lo que proporciono una gran ventaja en el precio y desempeño con respecto a

las máquinas de la segunda generación, construidas a partir de transistores individuales.

Se trabajó con un sistema operativo enorme y extraordinariamente complejo. A pesar de

su enorme tamaño y sus problemas el sistema operativo de la línea IBM 360 y los

sistemas operativos similares de esta generación producidos por otros fabricantes de

computadoras realmente pudieron satisfacer, en forma razonable a la mayoría de sus

clientes. También popularizaron varias técnicas fundamentales, ausentes de los sistemas

operativos de la segunda generación, de las cuales la más importante era la de

multiprogramación.

Otra característica era la capacidad de leer trabajos de las tarjetas al disco, tan

pronto como llegara al cuarto de cómputo. Así, siempre que concluyera un trabajo

el sistema operativo podía cargar un nuevo trabajo del disco en la partición que

quedara desocupada y ejecutarlo.

4ta Etapa (1980-Actualidad): Computadoras personales.

Un interesante desarrollo que comenzó a llevarse a cabo a mediados de la década

de los ochenta ha sido el crecimiento de las redes de computadoras personales,

con sistemas operativos de red y sistemas operativos distribuidos.

En los sistemas operativos de red, los usuarios están conscientes de la existencia

de varias computadoras y pueden conectarse con máquinas remotas y copiar

archivos de una maquina a otra. Cada máquina ejecuta su propio sistema operativo

local y tiene su propio usuario.

Por el contrario, un sistema operativo distribuido es aquel que aparece ante sus

usuarios como un sistema tradicional de un solo procesador, aun cuando está

compuesto por varios procesadores. En un sistema distribuido verdadero, los

usuarios no deben ser conscientes del lugar donde su programa se ejecute o de

lugar donde se encuentren sus archivos; eso debe ser manejado en forma

automática y eficaz por el sistema operativo.

1.4 ESTRUCTURA DE LOS SISTEMAS OPERATIVOS

MULTIPROGRAMACIÓN

Se denomina multiprogramación a la técnica que permite que dos o más procesos Ocupen la misma unidad de memoria principal y que sean ejecutados al "mismo tiempo".

MULTIPROCESO

Se denomina multiprocesador a una computadora que cuenta con dos o más microprocesadores. Gracias a esto el multiprocesador puede ejecutarse simultáneamente varios hilos pertenecientes a un mismo proceso o bien a procesos diferentes. Es el que permite que se ejecuten varios procesos a la vez y que puedan ejecutarse programas simultanea mente.

MULTITAREA

La capacidad de un Sistema Operativo para ejecutar varias tareas a la vez. Ejemplos: En este momento trabajo en el blogger y en Word a la vez.

MULTIUSUARIO

Características de los Sistemas Operativos que permiten proveer servicios o procesamientos a múltiples usuarios simultanea mente. Ejemplos: También podría usar múltiples recursos.

MONOLÍTICO

Sin estructura definida. Se componen de un conjunto de procedimientos, donde cada uno de ellos puede llamar a todos los demás. En los Sistemas Operativos monolítico, existen módulos grandes en el núcleo los cuales interactúan entre sí para tener esta estructura, las diferentes partes del Kernel son compiladas por capas.

ESTRUCTURA POR NIVELES DE CAPAS

El núcleo o kernel se divide en 5 capas o niveles:

Nivel 1. Gestión de Memoria: Proporciona las facilidades de bajo nivel para la

gestión de memoria secundaria necesaria para la ejecución de procesos.

Nivel 2. Procesador: Se encarga de activar el tiempo para cada uno de los

procesos, creando interrupciones de hardware cuando no son respetadas.

Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los

dispositivos de E/S requeridos por los procesos.

Nivel 4. Información o Aplicación o Intérprete de Lenguajes: Facilita la

comunicación con los lenguajes y el sistema operativo para aceptar las órdenes en

cada una de las aplicaciones. Ejecutando un programa el software de este nivel crea

el ambiente de trabajo e invoca a los procesos correspondientes.

Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a

largo plazo y manipulación de archivos con nombre, va asignando espacio y acceso

de datos en memoria.

El núcleo o kernel realiza diferentes funciones tales como:

Manejo de interrupciones.

Creación y destrucción de procesos.

Cambio de estado de los procesos.

Despacho

Suspensión y reanudación de procesos.

Sincronización de procesos.

Comunicación entre procesos.

Manipulación de los bloques de control de procesos.

Apoyo para las actividades de entrada/salida.

Apoyo para asignación y liberación de memoria.

Apoyo para el sistema de archivos.

Apoyo para el mecanismo de llamada y retorno de un procedimiento.

Apoyo para ciertas funciones de contabilidad del sistema.

1.5 CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS

UN SISTEMA OPERATIVO MONOUSUARIO (DE MONO: 'UNO'; Y USUARIO):

Es un sistema operativo que sólo puede ser ocupado por un único usuario en un

determinado tiempo. Ejemplo de sistemas monousuario son las versiones

domésticas de Windows. Administra recursos de memoria procesos y dispositivos

de las PC'S

Es un sistema en el cual el tipo de usuario no está definido y, por lo tanto, los datos

que tiene el sistema son accesibles para cualquiera que pueda conectarse.

En algunos sistemas operativos se accede al sistema reproductor de un usuario

único que tiene permiso para realizar cualquier operación. Este es el caso de los

sistemas operativos más antiguos como MS-DOS y algunos más recientes como la

serie Windows 95/98/Me de Microsoft o MacOS (antes de Mac OS X) de Macintosh.

En estos sistemas no existe una diferenciación clara entre las tareas que realiza un

administrador del sistema y las tareas que realizan los usuarios habituales, no

disponiendo del concepto de multiusuario, un usuario común tiene acceso a todas

las capacidades del sistema, pudiendo borrar, incluso, información vital para su

funcionamiento. Un usuario malicioso (remoto o no) que obtenga acceso al sistema

podrá realizar todo lo que desee por no existir dichas limitaciones.

MULTIUSUARIO

La palabra multiusuario se refiere a un concepto de sistemas operativos, pero en

ocasiones también puede aplicarse a programas de computadora de otro tipo (e.j.

aplicaciones de base de datos) e incluso a sistemas de cómputo. En general se le

llama multiusuario a la característica de un sistema operativo o programa que

permite proveer servicio y procesamiento a múltiples usuarios simultáneamente,

estrictamente es pseudo-simultáneo (tanto en paralelismo real como simulado).

En contraposición a los sistemas monousuario, que proveen servicio y

procesamiento a un solo usuario, en la categoría de multiusuario se encuentran

todos los sistemas que cumplen simultáneamente las necesidades de dos o más

usuarios, que comparten los mismos recursos. Actualmente este tipo de sistemas

se emplean especialmente en redes, pero los primeros ejemplos de sistemas

multiusuario fueron los centralizados, que los usuarios compartían a través del uso

de múltiples dispositivos de interfaz humana (ej. una unidad central y múltiples. sirve

para empresas monitores y teclados).

Los recursos que se comparten son, normalmente, una combinación de:

Procesador.

Memoria.

Almacenamiento secundario (en disco duro).

Programas.

Periféricos como impresoras, plóteres, escáneres, etc.

De tal modo que múltiples usuarios utilizan una única computadora, comparten

programas y usan un sistema operativo unificado, que les están dedicados por

completo; teniendo la impresión de que lo hacen simultáneamente.

MONOPROGRAMACION

MULTIPROCESADOR:

Varios procesadores reales instalados en el mismo sistema

TIEMPO COMPARTIDO

Multiprogramador por lotes interactivo.

TIEMPO REAL

Respuesta de acuerdo al entorno (sistema que se comporta de acuerdo al sistema

que lo esté utilizando) (no es rápido ni lento).

1.6 NUCLEO DE SISTEMA OPERATIVO

El Núcleo (o kernel) es una colección de módulos de software que se ejecutan en

forma privilegiada –lo que significa que tienen acceso pleno a los recursos del

sistema. El núcleo normalmente representa sólo una pequeña parte de lo que por

lo general se piensa que es todo el sistema operativo, pero es tal vez el código que

más se utiliza. Por esta razón, el núcleo reside por lo regular en la memoria principal,

mientras que otras partes del sistema operativo son cargadas en la memoria

principal sólo cuando se necesitan.

El núcleo de un sistema operativo normalmente el código necesario para realizar

las siguientes funciones:

• Manejo de interrupciones.

• Creación y destrucción de procesos.

• Cambio de estado de los procesos.

• Despacho.

• Suspensión y reanudación de procesos.

• Sincronización de procesos.

• Comunicación entre procesos.

• Manipulación de los bloques de control de procesos.

• Apoyo para las actividades de entrada/salida.

• Apoyo para asignación y liberación de memoria.

• Apoyo para el sistema de archivos.

• Apoyo para el mecanismo de llamada y retorno de un procedimiento.

• Apoyo para ciertas funciones de contabilidad del sistema.

El Kernel consiste en la parte principal del código del sistema operativo, el cual se

encargan de controlar y administrar los servicios y peticiones de recursos y de

hardware con respecto a uno o varios procesos, este se divide en 5 capas:

Nivel 1. Procesador. (Núcleo)

Se encarga de activar los cuantum de tiempo para cada uno de los procesos,

creando interrupciones de hardware cuando no son respetadas. Se introduce la

noción de proceso como un programa en ejecución. Entre los requisitos

fundamentales de un sistema operativo que ofrezca soporte para múltiples procesos

se incluye la capacidad de suspender y reanudar los procesos.

Esto exige salvaguardar los registros del hardware, de modo que la ejecución pueda

cambiar de un proceso a otro. Además, si los procesos necesitan cooperar, hace

falta algún método de sincronización. Una de las técnicas más simples, pero un

concepto importante en el diseño de sistemas operativos, es el semáforo.

• Objetos→ proceso y semáforo

• Operaciones típicas→ crear, destruir, suspender, reanudar, señalizar y esperar

Nivel 2. Entrada/Salida.

Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos por

procesos.

Tiene que ver con los dispositivos de almacenamiento secundario. En este nivel se

sitúan las funciones de ubicación de las cabezas de lectura y escritura, y se

producen las transferencias reales de bloques. Este nivel se apoya en el nivel

anterior para planificar las operaciones y notificar al proceso que hizo la solicitud

que la operación ha culminado.

Ø Objetos→ bloques de datos

Ø Operaciones típicas→ leer, escribir, asignar y liberar

Dispositivos de Entrada y Salida.

El código destinado a manejar la entrada y salida de los diferentes periféricos en un

sistema operativo es de una extensión considerable y sumamente complejo.

Resuelve las necesidades de sincronizar, atrapar interrupciones y ofrecer llamadas

al sistema para los programadores.

Nivel 4. Sistema de Archivos.

Proporciona la facilidad para el almacenamiento a largo plazo y manipulación de

archivos con nombre, va asignando espacio y acceso de datos en memoria. Da

soporte al almacenamiento a largo plazo de los archivos con nombre.

En este nivel, los datos del almacenamiento secundario se contemplan en términos

de entidades abstractas de longitud variable, en contraste con el enfoque orientado

al hardware del nivel de E/S básicas, en términos de pistas, sectores y bloques de

tamaño fijo.

• Objetos→ archivos dispositivos

• Operaciones típicas→ crear, destruir, abrir, cerrar, leer y escribir.

Nivel 5. Información o Aplicación o Intérprete de Lenguajes.

Facilita la comunicación con los lenguajes y el sistema operativo para aceptar las

ordenes en cada una de las aplicaciones. Cuando se solicitan ejecutando un

programa el software de este nivel crea el ambiente de trabajo e invoca a los

procesos correspondientes.

Ofrece al usuario una interfaz con el sistema operativo. Se denomina shell y separa

al usuario de los detalles, le presenta el sistema operativo como un simple conjunto

de servicios. El shell acepta las órdenes del usuario o las sentencias de control de

trabajos, las interpreta, crea y controla los procesos según sea necesario.

El intérprete de comandos representa la interfaz entre el usuario y el sistema

operativo. Algunos sistemas operativos incluyen el intérprete en el kernel. Otros

como el DOS o UNIX, poseen un programa especial para cumplir esta función que

se ejecuta cuando se inicia el sistema.

• Objetos→ datos del entorno

• Operaciones típicas→ sentencias del lenguaje de ordenes

BIBLIOGRAFÍA

http://sistemasoperativos.angelfire.com/html/1.4.html

http://eq2-sistemasoperativos.blogspot.mx/2012/04/16-nucleo-sistemas-operativos.html

http://q11sistemasoperativos.blogspot.mx/2012/09/multiprogramacion-y-

monoprogramacion.html

http://eq2-sistemasoperativos.blogspot.mx/2012/04/16-nucleo-sistemas-operativos.htm

http://florysel.blogspot.mx/2012/11/16-nucleo.html