sistemas operativos

52
INTRODUCCIÓN El sistema operativo, como bien es conocido, es el programa del sistema que controla todos los recursos del computador y ofrece el soporte básico sobre el cual se pueden escribir programas de aplicación. Un sistema de cómputo moderno consta de uno o más procesadores, una memoria principal, un teclado, una pantalla, interfaces de red y otros dispositivos de entrada y salida. En síntesis, se trata de un sistema complejo. Por lo cual las computadoras vienen equipadas con una capa de software llamada sistema operativo que es un soporte lógico imprescindible para convertir el sistema físico de un computador en una maquina utilizable por el usuario. Por eso su labor es administrar todos esos dispositivos y proporcionar a los programas de usuario una interfaz más sencilla para comunicarse con el hardware. Por este motivo en esta monografía vamos a comenzar hablando sobre que es un sistema operativo, cuáles son sus funciones ,objetivos y como han ido mejorando los sistemas a lo largo de los años, esta breve historia es interesante en sí misma, a la vez que nos ofrece una panorámica de los principios en que se basan los sistemas operativos. Nos mostrara cómo han evolucionado los sistemas operativos, desde los primitivos sistemas de proceso de lotes hasta los sofisticados sistemas operativos. SISTEMAS OPERATIVOS PÁG. 1

Upload: doris-callaca-minguillo

Post on 19-Jan-2016

20 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: SISTEMAS OPERATIVOS

INTRODUCCIÓN

El sistema operativo, como bien es conocido, es el programa del sistema

que controla todos los recursos del computador y ofrece el soporte básico sobre el

cual se pueden escribir programas de aplicación. Un sistema de cómputo

moderno consta de uno o más procesadores, una memoria principal, un teclado,

una pantalla, interfaces de red y otros dispositivos de entrada y salida. En síntesis,

se trata de un sistema complejo. Por lo cual las computadoras vienen equipadas

con una capa de software llamada sistema operativo que es un soporte lógico

imprescindible para convertir el sistema físico de un computador en una maquina

utilizable por el usuario. Por eso su labor es administrar todos esos dispositivos y

proporcionar a los programas de usuario una interfaz más sencilla para

comunicarse con el hardware. Por este motivo en esta monografía vamos a

comenzar hablando sobre que es un sistema operativo, cuáles son sus

funciones ,objetivos y como han ido mejorando los sistemas a lo largo de los

años, esta breve historia es interesante en sí misma, a la vez que nos ofrece una

panorámica de los principios en que se basan los sistemas operativos. Nos

mostrara cómo han evolucionado los sistemas operativos, desde los primitivos

sistemas de proceso de lotes hasta los sofisticados sistemas operativos.

SISTEMAS OPERATIVOS PÁG. 1

Page 2: SISTEMAS OPERATIVOS

SISTEMAS OPERATIVOS

Una computadora es un sistema formado por dos componentes importantes:

hardware y software. El hardware de la computadora es el equipo físico. El software

es la colección de programas que permiten que el hardware realice su trabajo.

El software de computadora se divide en dos amplias categorías: el sistema

operativo y los programas de aplicación (Fig. 1.1). Los programas de aplicación

utilizan el hardware de computadora para resolver los problemas de los usuarios. El

sistema operativo por otro lado, controla el acceso al hardware por parte de los

usuarios.

Fig. 1.1. Sistema de computación

SISTEMAS OPERATIVOS PÁG. 2

SISTEMA DE COMPUTACIÓN

HARDWARE SOFTWARE

SISTEMA OPERATIVO

PROGRAMAS DE APLICACIÓN

Page 3: SISTEMAS OPERATIVOS

1. DEFINICIÓN

Un sistema operativo es tan complejo que es difícil dar una simple definición

universal. En vez de ello, he aquí algunas definiciones comunes:

Un sistema operativo es una interfaz entre el hardware de una computadora

y el usuario (programas o personas).

Un sistema operativo es un programa (o una serie de programas) que facilita

la ejecución de otros problemas.

Un sistema operativo actúa como un gerente general que supervisa la

actividad de cada componente en el sistema de computación. Como

gerente general1, el sistema operativo revisa que los recursos de hardware y

software se utilicen de manera eficiente y cuando existe un conflicto al usar

un recurso, el sistema operativo actúa como mediador para resolverlo.

Entonces podemos dar la siguiente definición:

1 Esta es una comparación de un sistema operativo con la realidad, para entender y comprender su función.

SISTEMAS OPERATIVOS PÁG. 3

Un SISTEMA OPERATIVO es una interfaz entre el hardware de una computadora y el usuario (programas o personas) que facilita la ejecución de otros programas y el acceso a recursos de hardware y software.

Page 4: SISTEMAS OPERATIVOS

2. FUNCIONES Y OBJETIVOS DE LOS SISTEMAS

OPERATIVOS.

Puede considerarse que un sistema operativo tiene tres objetivos o lleva a cabo

tres funciones:

COMODIDAD: Un sistema operativo hace que un computador sea más

cómodo de utilizar.

EFICIENCIA: Un sistema operativo permite que los recursos de un sistema

informático se aprovechen de una manera más eficiente.

CAPACIDAD DE EVOLUCIÓN: Un sistema operativo debe construirse de

modo que permita el desarrollo efectivo, la verificación y la introducción de

nuevas funciones en el sistema y, a la vez, no interferir en los servicios que

brinda.

A continuación se van a tratar estos tres aspectos de forma mas detallada de los

sistemas operativos:

2.1. EL SISTEMA OPERATIVO COMO INTERFAZ

USUARIO/COMPUTADORA.

El hardware y el software que se utilizan para proveer de aplicaciones a los

usuarios pueden contemplarse de forma estratificada o jerárquica, como se muestra

en la fig. 2.1. Al usuario de estas aplicaciones se le llama usuario final y,

generalmente, no tiene que ocuparse de la arquitectura del computador. Por tanto,

el usuario final ve al sistema informático en términos de aplicaciones. Las

aplicaciones pueden construirse con un lenguaje de programación y son

desarrolladas por programadores de aplicaciones. Para facilitar esta tarea, se

ofrecen una serie de programas de sistemas.

SISTEMAS OPERATIVOS PÁG. 4

Page 5: SISTEMAS OPERATIVOS

Algunos de estos programas se denominan utilidades e implementan funciones

muy utilizadas que ayudan a la creación de los programas, la gestión de los archivos

y el control de los dispositivos de E/S (Entrada y Salida). Por eso el programa de

sistemas más importante es el sistema operativo. El sistema operativo oculta el

programador los detalles del hardware y le proporciona una interfaz cómoda para

utilizar el sistema. Actúa como mediador, facilitándole al programador y a los

programas de aplicación el acceso y uso de todas esas características y servicios.

De forma resumida, un sistema operativo ofrece servicios en las áreas

siguientes:

Creación de programas: El sistema operativo ofrece una variedad de

características y servicios tales como los editores y los depuradores

(debuggers), para ayudar al programador en la creación de programas.

Ejecución de programas: Para ejecutar un programa se necesita un cierto

número de tareas. Las instrucciones y los datos se deben cargar en la

memoria principal, los archivos y los dispositivos de E/S se deben inicializar

y se deben preparar otros recursos. El sistema operativo administra todas

estas tareas para el usuario.

Acceso a los dispositivos de E/S: Cada dispositivo de E/S requiere un

conjunto propio y peculiar de instrucciones o de señales de control para su

funcionamiento. El sistema operativo tiene en cuenta estos detalles de

modo que el programador pueda pensar en forma de lecturas y escrituras

simples.

Acceso controlado a los archivos: En el caso de los archivos, el control

debe incluir una comprensión, no solo de la naturaleza del dispositivo de

E/S (controlador de disco, controlador de cinta) sino del formato de los

archivos y del medio de almacenamiento. Una vez más, es el sistema

operativo el que se encarga de los detalles.

SISTEMAS OPERATIVOS PÁG. 5

Page 6: SISTEMAS OPERATIVOS

USUARIO FINAL

PROGRAMAS DE APLICACIÓN

UTILIDADES

SISTEMA OPERATIVO

DISEÑADOR DEL SISTEMA OPERATIVOHARDWARE DE LA COMPUTADORA

PROGRAMADOR

Fig. 2.1. Niveles y vistas de un sistema operativo

Acceso al sistema: En el caso de un sistema compartido o público, el

sistema operativo controla el acceso al sistema como un todo y a los

recursos específicos del sistema. Las funciones de acceso pueden brindar

protección, a los recursos y a los datos, ante recursos no autorizados y debe

resolver los conflictos en la propiedad de los recursos.

Detección y respuesta a errores: Cuando un sistema informático está en

funcionamiento pueden producirse varios errores. Entre estos se incluyen los

errores internos y externos del hardware, tales como los errores de la

memoria, fallos o mal funcionamiento de dispositivos y distintos tipos de

errores de software, como el desbordamiento aritmético, el intento de

acceder a una posición prohibida de memoria y la incapacidad del sistema

operativo para satisfacer la solicitud de una aplicación.

Contabilidad: Un buen sistema operativo debe recoger estadísticas de

utilización de los diversos recursos y supervisar los parámetros de

rendimiento tales como el tiempo respuesta.

SISTEMAS OPERATIVOS PÁG. 6

Page 7: SISTEMAS OPERATIVOS

2.2. EL SISTEMA OPERATIVO COMO ADMINISTRADOR

DE RECURSOS

Un computador es un conjunto de recursos para el traslado, almacenamiento

y proceso de datos y para el control de estas funciones. El sistema operativo es el

responsable de la gestión de recursos.

PREGUNTA: ¿Se puede afirmar que el sistema operativo es el que controla

el traslado, almacenamiento y proceso de los datos?

Desde un punto de vista la respuesta es afirmativa: administrando los recursos del

computador, el sistema operativo tiene el control de las funciones básicas de la

misma. Pero este control se ejerce de una manera curiosa. Normalmente se piensa

en un mecanismo de control como algo externo a lo controlado, o, al menos como

algo distinto y una parte separada de lo controlado. Este no es el caso de un

sistema operativo, que no es habitual como mecanismo de control en dos aspectos:

El sistema operativo funciona de la misma manera que el software normal de

un computador, es decir, es un programa ejecutado por el procesador.

El sistema operativo abandona con frecuencia el control y debe depender del

procesador para recuperarlo.

El sistema operativo es, de hecho, nada más que un programa del compilador2.

Como otros programas de computador, da instrucciones al procesador. La diferencia

clave está en el propósito del programa.

2 Una cantidad creciente de sistemas operativos toma partido cada vez más por el

firmware en vez de por el software. Esto no altera los argumentos de modo sensible.

SISTEMAS OPERATIVOS PÁG. 7

Page 8: SISTEMAS OPERATIVOS

DISPOSITIVOS DE E/SMemoria

Software del sistema

operativoProgramas y

datos

Procesador

Controlador de E/S

Controlador de E/S

Controlador de E/S

Procesador

S.OPROGRAMAS

DATOS

La figura 2.2 propone los recursos principales que son administrados por el sistema

operativo. Una parte del sistema operativo está en la memoria principal. En esta

parte está el núcleo (kernel), que incluye las funciones utilizadas con más frecuencia

en el sistema operativo y, en un momento dado, puede incluir otras partes del

sistema operativo que estén en uso. El resto de la memoria principal contiene datos

y otros programas de usuario. Como se verá, la asignación de este recurso (la

memoria principal) es controlada conjuntamente por el sistema operativo y por el

hardware de gestión de memoria en el procesador.

FIGURA 2.2 El sistema operativo como administrador de recursos

3. HISTORIA Y EVOLUCIÓN

SISTEMAS OPERATIVOS PÁG. 8

Page 9: SISTEMAS OPERATIVOS

Años 40

A finales de los años 1940, con lo que podríamos llamar la aparición de la primera

generación de computadoras, se accedía directamente a la consola de la

computadora desde la cual se actuaba sobre una serie de micro interruptores que

permitían introducir directamente el programa en la memoria de la computadora (en

realidad al existir tan pocas computadoras todos podrían considerarse prototipos y

cada constructor lo hacía sin seguir ningún criterio predeterminado). Por aquel

entonces no existían los sistemas operativos, y los programadores debían

interactuar con el hardware del computador sin ayuda externa. Esto hacía que el

tiempo de preparación para realizar una tarea fuera considerable. Además para

poder utilizar la computadora debía hacerse por turnos. Para ello, en muchas

instalaciones, se rellenaba un formulario de reserva en el que se indicaba el tiempo

que el programador necesitaba para realizar su trabajo. En aquel entonces las

computadoras eran máquinas muy costosas lo que hacía que estuvieran muy

solicitadas y que sólo pudieran utilizarse en periodos breves de tiempo. Todo se

hacía en lenguaje de máquina.

Años 50

A principios de los años 50 con el objeto de facilitar la interacción entre persona y

computador, los sistemas operativos hacen una aparición discreta y bastante

simple, con conceptos tales como el monitor residente, el proceso por lotes y el

almacenamiento temporal.

Monitor residente

Su funcionamiento era bastante simple, se limitaba a cargar los programas a

memoria, leyéndolos de una cinta o de tarjetas perforadas, y ejecutarlos. El

problema era encontrar una forma de optimizar el tiempo entre la retirada de un

trabajo y el montaje del siguiente.

SISTEMAS OPERATIVOS PÁG. 9

Page 10: SISTEMAS OPERATIVOS

Procesamiento por lotes

Como solución para optimizar el tiempo de montaje surgió la idea de agrupar los

trabajos en lotes, en una misma cinta o conjunto de tarjetas, de forma que se

ejecutaran uno a continuación de otro sin perder apenas tiempo en la transición.

Almacenamiento temporal

Su objetivo era disminuir el tiempo de carga de los programas, haciendo simultánea

la carga del programa o la salida de datos con la ejecución de la siguiente tarea.

Para ello se utilizaban dos técnicas, el buffering y el spooling.

Sistemas operativos desarrollados:

En esta etapa estarían COMPRENDIDOS :

GM OS: Desarrollado por general motors para el IBM 701.

Input Output System: Desarrollado por general motors y fuerza aérea de los

estados unidos para el IBM 704.

FORTRAN Monitor System: Desarrollado por la aviación norteamericana

para IBM 709.

SAGE: primer sistema de control en tiempo real, desarrollado para IBM

AN/FSQ7

SOS: desarrollado por IBM SHARE Users Group para IBM 709.

Años 60

SISTEMAS OPERATIVOS PÁG. 10

Page 11: SISTEMAS OPERATIVOS

En los años 60 se produjeron cambios notorios en varios campos de la informática,

con la aparición del circuito integrado la mayoría orientados a seguir incrementando

el potencial de los computadores. Para ello se utilizaban técnicas de lo más diversas

entre ellas podemos mencionar a la multiprogramación pero no solo se integraron

términos sino que también se introdujo el concepto de sistemas operativos de

tiempo compartido y tiempo real.

Multiprogramación

Multiprogramación es un término que significa que muchos programas que no están relacionados unos con otros pueden residir en la memoria de una computadora y tomar turnos usando la unidad central de procesamiento. La sección que permite la multiprogramación en un sistema operativo se denomina Kernel, éste software consiste en un numero de procedimientos que llevan a cabo funciones como crear tareas, decidir cual tarea correrá en un momento dado, proveyendo un mecanismo para cambiar al procesador de una tarea a otra y provee formas primitivas de acceso controlado a recursos compartidos.

El concepto de multiprogramación nació desde la observación que las computadoras gastaban mucho de su tiempo esperando a los dispositivos periféricos ya sea para tomar o guardar datos. Al principio de la computación los

SISTEMAS OPERATIVOS PÁG. 11

Eevolucion de los S.O en los años 60

Sistemas operativos

Tiempo Real Tiempo Compartido

Multiprogramación Multiprocesador

Page 12: SISTEMAS OPERATIVOS

dispositivos periféricos eran bastante lentos (cintas de papel, cintas magnéticas y teletipos) unos 10 caracteres por segundo era una velocidad muy común. A pesar de que los dispositivos periféricos actualmente han incrementado su velocidad considerablemente también lo han hecho las computadoras, por lo tanto incluso hoy la diferencia de velocidad relativa entre periféricos es casi la misma y por tanto el mismo problema sigue siendo de relevancia.

A finales de los años 60 y los principios de los años 70 las computadoras que hoy en día tendrían un modesto poder en comparación con los estándares actuales, eran muy costosas. Por lo tanto era de mucha importancia sacar el máximo partido de aquellas maquinas; esperar por una operación de Entrada/Salida era tiempo improductivo. A partir de entonces empezó a aparecer sistemas los cuales podían manejar el trabajo de alguien mientras otra operación estaba esperando una Entrada/Salida en otro recurso que no estaba disponible cuando se hizo la petición del mismo. El software que permitió la ordenada planificación de los trabajos es el entorno conocido como sistema operativo multiprogramación. Tal software también provee abstracción y control de acceso. Colectivamente la provisión de estos dos aspectos es lo que se deberá llamar un sistema operativo.

Multiprocesador

Se denomina multiprocesador a un computador que cuenta con dos o más microprocesadores (CPUs).Gracias a esto, el multiprocesador puede ejecutar simultáneamente varios hilos pertenecientes a un mismo proceso o bien a procesos diferentes.

Los ordenadores multiprocesador presentan problemas de diseño que no se encuentran en ordenadores monoprocesador. Estos problemas derivan del hecho de que dos programas pueden ejecutarse simultáneamente y, potencialmente, pueden interferirse entre sí. Concretamente, en lo que se refiere a las lecturas y escrituras en memoria.

Existen dos arquitecturas que resuelven estos problemas:

SISTEMAS OPERATIVOS PÁG. 12

Page 13: SISTEMAS OPERATIVOS

Sistemas operativos de tiempo real.

Un sistema operativo en tiempo real procesa las instrucciones recibidas al instante, y una vez que han sido procesadas muestra el resultado. Este tipo tiene relación con los sistemas operativos monousuarios, ya que existe un solo operador y no necesita compartir el procesador entre varias solicitudes. Su característica principal es dar respuestas rápidas; por ejemplo en un caso de peligro se necesitarían respuestas inmediatas para evitar una catástrofe. Este tipo sistemas operativos presentan también características como:

Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.

Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.

El objetivo es proporcionar rápidos tiempos de respuesta Procesa ráfagas de miles de interrupciones por segundo sin perder un solo

suceso. La gestión de memoria menos exigente que tiempo compartido, usualmente

procesos son residentes permanentes en memoria.

Sistemas operativos de tiempo compartido

SISTEMAS OPERATIVOS PÁG. 13

Arquitecturas que solucionan el

problema

La arquitectura NUMA

Cada procesador tiene acceso y

control exclusivo a una parte de la

memoria.

La arquitectura SMP

Todos los procesadores

comparten toda la memoria

Page 14: SISTEMAS OPERATIVOS

El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por más de una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En este aspecto, es similar a la capacidad de multitareas que es común en la mayoría de los microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios a computadoras más grandes y a organizaciones de servicios, mientras que la multitarea relacionada con las microcomputadoras implica la realización de múltiples tareas por un solo usuario. Podemos destacar también la presencia de otras características como:

Populares representantes de sistemas multiprogramadores y multiusuarios, ejemplo: sistemas de diseño asistido por ordenador, procesamiento de texto, etc.

Dan la ilusión de que cada usuario tiene una máquina para sí. La mayoría utilizan algoritmos de reparto circular. Los programas se ejecutan con prioridad rotatoria que se incrementa con la

espera y disminuye después de concedido el servicio. Evitan la monopolización del sistema asignando tiempos de procesador. La gestión de memoria proporciona protección a programas residentes. La gestión de archivo debe proporcionar protección y control de acceso

debido a que pueden existir múltiples usuarios accediendo a un mismo archivo.

Años 70

Debido al avance de la electrónica, pudo empezar a crearse circuitos con miles de

transistores en un centímetro cuadrado de silicio, lo que llevaría, pocos años

después, a producir los primeros sistemas integrados. Ésta década se podría definir

como la de los sistemas de propósito general y en ella se desarrollan tecnologías

que se siguen utilizando en la actualidad. Es en los años 70 cuando se produce el

boom de los miniordenadores y la informática se acerca al nivel de usuario. En lo

relativo a lenguajes de programación, es de señalar la aparición de Pascal y C, el

último de los cuales se creó específicamente para reescribir por completo el código

del sistema operativo Unix, convirtiéndolo en uno de los pocos sistemas operativos

escritos en un lenguaje de alto nivel.

En el campo de la programación lógica se dio a luz la primera implementación de

Prolog, y en la revolucionaria orientación a objetos, Smalltalk.

SISTEMAS OPERATIVOS PÁG. 14

Page 15: SISTEMAS OPERATIVOS

Hemos visto que se desarrollaron gran cantidad de sistemas pero lo que en realidad

se pretendía era solucionar inconvenientes y problemas que generalmente se

suscitaban este tipo de sistemas.

Principales problemas de sistemas

operativos antiguos

Principales características de sistemas

operativos desarrollados (70)

Sistemas grandes y costosos Menos Grandes pero igual costosos

Formaban una capa entre el hardware

y el usuario

Amplia capa de software entre el

usuario y la máquina.

Gran consumo de recursos Se liberó el uso de algunos recursos.

Ocupaban grandes espacios de

memoria principal y secundaria

Ocupaban menos espacios en la

memoria principal

Ahora presentamos una lista pequeña de los sistemas operativos desarrollados

durante esta época ahí se podrá constatar las características anteriormente

mencionadas en el cuadro comparativo de arriba.

MULTICS: (Multiplexed Information and Computing Service):

Originalmente era un proyecto cooperativo liderado por Fernando Corbató del MIT,

con General Electric y los laboratorios Bell, que comenzó en los 60, pero los

laboratorios Bell abandonaron en 1969 para comenzar a crear el sistema UNIX. Se

desarrolló inicialmente para el mainframe GE-645, un sistema de 36 bits; después

fue soportado por la serie de máquinas Honeywell 6180. Fue uno de los primeros

sistemas operativos de tiempo compartido, que implementó un solo nivel de

almacenamiento para el acceso a los datos, desechando la clara distinción entre los

ficheros y los procesos en memoria, y uno de los primeros sistemas

multiprocesador.

SISTEMAS OPERATIVOS PÁG. 15

Page 16: SISTEMAS OPERATIVOS

MVS (Multiple Virtual Storage):

Fue el sistema operativo más usado en los modelos de mainframes -ordenadores

grandes, potentes y caros usados principalmente por grandes compañías para el

procesamiento de grandes cantidades de datos- System/370 y System/390 de IBM,

desarrollado también por IBM y lanzado al mercado por primera vez en 1974. Como

características destacables, permitía la ejecución de múltiples tareas, además de

que introdujo el concepto de memoria virtual y finalmente añadió la capacidad de

que cada programa tuviera su propio espacio de direccionamiento de memoria, de

ahí su nombre.

CP/M (Control Program/Monitor):

Desarrollado por Gary Kildall para el microprocesador 8080/85 de Intel y el Zilog

Z80, salió al mercado en 1976, distribuyéndose en disquetes de ocho pulgadas. Fue

el SO más usado en las computadoras personales de esta década. Su éxito se

debió a que era portátil, permitiendo que diferentes programas interactuasen con el

hardware de una manera estandarizada.

AÑOS 80

Con la creación de los circuitos LSI (integración a gran escala) chips que contenían

miles de transistores en un centímetro cuadrado de silicio, empezó el auge de los

ordenadores personales.

En éstos tiempos se dejo un poco de lado el rendimiento y se buscó más que el

sistema operativo sea amigable, surgiendo los menús, e interfaces graficas. Esto

reducía la rapidez de las aplicaciones; pero se volvían más prácticos y simples para

los usuarios.

En esta época, siguieron utilizando lenguajes ya existentes, como Smalltalk o C, y

nacieron otros nuevos, de los cuales se podía destacar: C++ y Eiffel dentro de la

categoría “orientado a objetos”, y Haskell y Miranda en el campo de la programación

declarativa.

SISTEMAS OPERATIVOS PÁG. 16

Page 17: SISTEMAS OPERATIVOS

Un avance importante que se estableció a mediados de la década de 1980 fue el

desarrollo de redes de computadoras personales que corrían sistemas operativos en

red y sistemas operativos distribuidos.

En ésta época dos sistemas operativos eran los mayoritarios: MS-DOS, escrito por

Microsoft para IBM PC y otras computadoras que utilizaban el CPU con

microprocesador Intel 8088 y sus sucesores.

Veamos a continuación los sistemas operativos más conocidos en esta época:

1.-Apple Macintosh

Su lanzamiento se produjo en enero de 1984, al precio de 2495 dólares. Muchos

usuarios, al ver que estaba completamente diseñado para funcionar a través de una

GUI (Graphic User Interface), acostumbrados a la línea de comandos, lo tacharon

de juguete. A pesar de todo, el Macintosh se situó a la cabeza en el mundo de la

edición a nivel gráfico.

2.-MS-DOS

En 1981 Microsoft compró un sistema operativo llamado QDOS que tras realizar

algunas modificaciones se convirtió en la primera versión de MS-DOS (Microsoft

Disk Operating System), a partir de aquí se sucedieron una serie de cambios y

modificaciones hasta llegar a la versión 7.1, a partir de la cual MS-DOS dejó de

existir como tal y se convirtió en una parte integrada del sistema operativo Windows.

3.-Microsoft Windows:

A mediados de los años 80 se crea este sistema operativo, que es una familia de

sistemas operativos propietarios desarrollados por la empresa Microsoft

Corporation, fundada por Bill Gates y Paul Allen, pero no es, hasta la salida de

Windows 95 que se le puede considerar un sistema operativo, solo era una interfaz

gráfica del MS-DOS. Hoy en día es el sistema operativo más difundido en el ámbito

doméstico aunque también hay versiones para servidores como Windows NT.

Microsoft ha diseñado también algunas versiones para superordenadores, pero sin

mucho éxito. Años después se hizo el Windows 98 que era el más eficaz de esa

SISTEMAS OPERATIVOS PÁG. 17

Page 18: SISTEMAS OPERATIVOS

época Después se crearía el sistema operativo de Windows ME (Windows Millenium

Edition) aproximadamente entre el año 1999 y el año 2000. Un año después se

crearía el sistema operativo de Windows 2000 en ese mismo año. Después le

seguiría el sistema operativo más utilizado en la actualidad, Windows XP y otros

sistemas operativos de esta familia especializados en las empresas. Ahora el más

reciente es Windows Vista, que, actualmente, tiene muchas críticas. Ahora está en

desarrollo el sistema operativo Windows 7, que será una especie de "actualización"

a Windows Vista, sacando novedades y mejorando problemas de incompatibilidad,

rendimiento.

AÑOS 90

En esta época surgieron los siguientes acontecimientos:

Aparición Computo Paralelo (Teraflops).

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

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

grandes cantidades de datos, audio y video.

World Wide Web.

Notebooks utilizando tecnologias de comunicación inalámbrica: Computo

Móvil.

Cómputo Embebido y Robótica.

SISTEMAS OPERATIVOS PÁG. 18

Page 19: SISTEMAS OPERATIVOS

GNU/ LINUX

La idea de un Sistema Operativo Libre para la humanidad nace en 1984, impulsada

por Richard Stallman, ex-empleado del MIT. Motivado por esta idea comienza la

construcción y desarrollo de las herramientas elementales que componen un

Sistema Operativo, a esta parte del desarrollo del Sistema Operativo se le conoce

como proyecto GNU. En esta etapa Richard Stallman cuenta con la colaboración de

miles de programadores a nivel mundial. En 1991 aparece la primera versión del

núcleo Linux. Creado por Linus Torvalds, pero antes de que este apareciera ya

existía la mayoría de las herramientas que componían al Sistema Operativo, pero

aun así el núcleo Linux tiene una importancia fundamental para el proyecto, es tal la

importancia de este que el proyecto termina llamándose GNU/Linux, dando un 50%

de importancia a ambas partes.

Este sistema es similar a Unix, basado en el estándar POSIX, un sistema que en

principio trabajaba en modo comandos. Hoy en día dispone de Ventanas, gracias a

un servidor gráfico y a gestores de ventanas como KDE, GNOME entre muchos.

Recientemente GNU/Linux dispone de un aplicativo que convierte las ventanas en

un entorno 3D como por ejemplo Beryl o Compiz. Lo que permite utilizar Linux de

una forma visual atractiva.

4. COMPONENTES

4.1 ADMINISTRADOR DE MEMORIA

Para ejecutar un proceso, éste debe encontrarse en memoria principal.

Como sabemos para mejorar el aprovechamiento de la CPU, ésta se reparte entre

varios procesos, por lo tanto, también habrá que repartir la memoria principal. A la

parte del sistema operativo que se ocupa de gestionar la memoria se le denomina

Gestor o administrador de Memoria. Su cometido consiste en llevar la cuenta de las

partes de memoria que se están utilizando y las que están libres, así como de

gestionar el trasvase de información entre la memoria principal y la secundaria

cuando la memoria RAM no sea suficientemente grande para acoger a todos los

SISTEMAS OPERATIVOS PÁG. 19

Page 20: SISTEMAS OPERATIVOS

procesos. Una de las responsabilidades de un sistema de computación moderno es

la administración de memoria, el cual se refiere a los distintos métodos y

operaciones que se encargan de obtener la máxima utilidad de la memoria,

organizando los procesos y programas que se ejecutan de manera tal que se

aproveche de la mejor manera posible el espacio disponible. La administración

básica de los sistemas se puede dividir en dos clases, los que trasladan procesos

entre la memoria y el disco durante la ejecución (intercambio y paginación) y los que

no lo hacen.

Su obligación es:

De mantener a tanto de que partes de la memoria están en uso y cuáles no.

Asignar a la memoria a los procesos cuando la necesitan y liberarla cuando

terminan.

Administrar los intercambios entre la memoria principal y el disco cuando la

primera es demasiado pequeña para contener todos los procesos.

Pero como el software parece estar creciendo con rapidez que la memoria, por

lo que es posible que se siempre se necesite una administracion de memoria

eficiente.

Así, tenemos que en la gestión de memoria se deben perseguir los siguientes

objetivos:

Protección

Si varios procesos comparten la memoria principal, se debe asegurar que ninguno

de ellos pueda modificar posiciones de memoria de otro proceso. Por lo cual debe

disponerse de un sistema de permisos de acceso que especifique los derechos que

tiene cada proceso en el acceso a zonas de memoria de otros procesos.

compartimiento de la memoria

El cual parece estar en contradicción con la protección, pero es que a menudo

también es necesario que varios procesos puedan compartir y actualizar estructuras

de datos comunes, por ejemplo, en un sistema de bases de datos.

Reubicación

SISTEMAS OPERATIVOS PÁG. 20

Page 21: SISTEMAS OPERATIVOS

La multiprogramación requiere que varios procesos residan simultáneamente en

memoria. Lo que no se puede saber antes de llevarlo a memoria es la dirección

absoluta en la que se va a cargar el proceso, por lo que no es práctico utilizar

direcciones absolutas en el programa. En su lugar, es preferible realizar

direccionamientos relativos para permitir que un programa pueda ser cargado y

ejecutado en cualquier parte de la memoria.

Organización de la memoria

La memoria se debe organizar tanto física como lógicamente.

Si una gestión de memoria pudiera proporcionar varios espacios de direcciones,

cada estructura lógica podría ser una entidad independiente

Los sistemas de gestión de memoria pueden dividirse en dos clases: los que

mueven los procesos entre memoria principal y secundaria (intercambio y

paginación), y los que no lo hacen. Tanto el intercambio como la paginación son

mecanismos originados por la insuficiencia de memoria principal para contener

todos los procesos en memoria simultáneamente.

SISTEMAS OPERATIVOS PÁG. 21

Page 22: SISTEMAS OPERATIVOS

En resumen:

La gestion de memoria debe proporcionar:

PROTECCION: Permisos de acceso

COMPARTIMIENTO de la informacion

REUBICAIÓN para los sitemas multiprogramados

ORGANIZACIÓN DE LA MEMORIA:

SISTEMAS OPERATIVOS PÁG. 22

Los programas crecen mucho

Se necesita mucha

memoria

Los sistemas suelen ser multiusuario

Fisica:

Monoprogramación

Multiprogramacion con particiones fijas

Virtual:

Multiprogramación: paginación y segmentación

Memoria virtual: paginación segmentación.

Page 23: SISTEMAS OPERATIVOS

5.1. MONOPROGRAMACIÓN

La monoprogramacion pertenece al pasado, a los primeros sistemas

operativos pero vale la pena mencionarlo ya que nos ayudara a comprender la

multiprogramación; en la monoprogramación se divide en dos partes:uno para el

sistema operativo y otra para el programa a ejecutar; ya que la mayor parte de la

capacidad de memoria se dedica a un solo programa,unicamente se necesita una

pequeña parte de la capacidad de memoria para alojar al sistema operativo.En esta

configuacion todo programa debe estar en la memoria para su ejecución y hasta que

no finalice ese programa no puede empezar a ejecutarse otro.

Las funciones que realiza un SO monoprogramación son:

Siempre que un programa realiza una operación de E/S hace una llamada al

sistema para que éste genere la instrucciones máquina concretas de la E/S.

Cuando finaliza una operación de E/S, el periférico correspondiente genera

una interrupción que provoca la llamada al SO y continúa con la ejecución

del programa.

Cuando acaba la ejecución del programa, el ordenador queda listo para

aceptar uno nuevo.

Desventajas:

Se desaprovecha la memoria principal: ésta sólo se ocupa parcialmente.

Se desaprovecha el procesador: siempre que hay una operación de E/S,

éste no se utiliza.

Los periféricos están infrautilizados: el programa en ejecución en un instante

dado sólo puede utilizar uno de los recursos hardware.

SISTEMAS OPERATIVOS Pág. 23

Page 24: SISTEMAS OPERATIVOS

El esquema de administración de memoria más sencillo posible es ejecutar sólo

un programa a la vez, compartiendo la memoria entre ese programa y el sistema

operativo. Como se muestra en la Figura 5.1

FIGURA 5.1. Monoprogramación

El administrador de memoria entra en accion justo aquí, ya que carga el

programa en la memoria, lo ejecuta y lo reemplaza en el programa siguiente.Sin

embargo hay varios problemas con esta tecnica:

El programa debe caber en la memoria.Si el tamaño de la memoria es menor

que el tamaño del programa, este no se puede ejecutarse.

Cuando un programa esta en ejecucion ,ningun orto programa puede

ejecutarse. Durante su ejecución, un programa a menudo necesita recibir

datos de dispositivos de entrada y enviar datos a los dispositivos de salida.

Los didpositivos de entrada/salida en realidad son comparados con el CPU.

Asi cuando se lleva acabo las operaciones de entrada/salida el dispositivo

esta inactivo.no puede atender a otro programa porque este otro no esta en

la memoria.

SISTEMAS OPERATIVOS Pág. 24

Memoria

Sistema operativo

Programa y datos

Page 25: SISTEMAS OPERATIVOS

5.2 MULTIPROGRAMACIÓN

|En la multiprogramación, la memoria permite que dos o más programas

ocupen la misma unidad de memoria principal y que sean ejecutados al mismo

tiempo en la unidad central de proceso o CPU. Los cuales se ejecutan

concurrentemente en el CPU, pues os programas son alternados. Así por ejemplo

mientras se ejecutan operaciones de entrada y salida de un programa, la unidad

central de proceso puede ocuparse en realizar operaciones distintas de las de E/S

pertenecientes a otros programas. La multiprogramación se controla a través del

sistema operativo, el cual observa los programas y los vigila hasta que estén

concluidos. Como se muestra en la Figura 5.2.

FIGURA 5. 2. Multiprogramación

SISTEMAS OPERATIVOS Pág. 25

Page 26: SISTEMAS OPERATIVOS

Aporta las siguientes ventajas:

Permite varios procesos en ejecución.

Permite el servicio interactivo simultáneo a varios usuarios de manera

eficiente.

Aprovecha los tiempos que los procesos pasan esperando a que se

completen sus operaciones de E/S

Aumenta el uso de la CPU.

Las direcciones de los procesos son relativas, el programador no se

preocupa por saber en dónde estará el proceso dado que el sistema

operativo es el que se encarga de convertir la dirección lógica en física.

Desde la decada de 1960, la multiprogramación ha sufrido varias mejoras que se

pueden ver en la figura 5.3. De la cual dos técnicas pertenecen a la categoria de no

intercambio; esto significa que el programa permanece en la memoria durante su

ejecución. Las otras dos tecnicas pertenecen a la categorias de intercambio. Esto

significa que, durante su ejecución,el programa puede intercambiarse entre la

memoria y el disco una o mas veces.

FIGURA 5.3 categorias de la multiprogramación

SISTEMAS OPERATIVOS Pág. 26

Multiprogramación

No intercambio Intercambio

Particionamiento Paginación Paginación bajo demanda

Segmentación bajo demanda

Page 27: SISTEMAS OPERATIVOS

CPU PROGRAMA 1

5.2.1. PARTICIONAMIENTO

La primera técnica usada en la multiprogramación se llama particionamiento.

Bajo este esquema, la memoria se divide en secciones de longitud variable. Cada

sección o partición aloja un programa. El CPU alterna entre los programas.

Comienza con un programa. Ejecuta algunas instrucciones hasta que se encuentre

una operación de entrada/salida o el tiempo asignado a ese programa expira. El

CPU guarda la dirección de la localidad de memoria donde se ejecutó la ultima

instrucción y se traslada al siguiente programa. El mismo procedimiento se repite

con el segundo. Después que se han atendido todos los programas, el CPU regresa

al primer programa. (Figura 5.4)

FIGURA 5.4. Particionamiento

SISTEMAS OPERATIVOS Pág. 27

MEMORIA MEMORIA

a. El CPU inicia la ejecución del Programa 1

b. El CPU inicia la ejecución del programa 2

SISTEMA OPERATIVO

PROGRAMA 2

PROGRAMA 3

CPU

SISTEMA OPERATIVO

PROGRAMA 1

PROGRAMA 2

PROGRAMA 3

a.

b.

Page 28: SISTEMAS OPERATIVOS

Con esta técnica, cada programa está completamente en la memoria y ocupa

localidades contiguas. El particionamiento mejora la eficiencia del CPU, pero aun

hay otros problemas:

El tamaño de las particiones debe ser determinado de antemano por el

administrador de memoria. Si los tamaños de partición son pequeños,

algunos programas no pueden cargarse en la memoria. Si los tamaños de

partición son grandes, podría haber algunos espacios vacios en la memoria.

Aun así si el particionamiento es perfecto cuando la computadora se inicia,

debe haber algunos espacios vacios después de que los programas se

reemplazan con otros nuevos.

Cuando hay muchos espacios vacios, el administrador de memoria puede

compactar las particiones para eliminar los espacios vacios al crear

particiones nuevas, pero esta crea una sobrecarga al sistema.

5.2.2 PAGINACIÓN

La paginación mejora la técnica del particionamiento. En la paginación se

divide en secciones de igual tamaño llamados bloques. El programa se divide en

secciones de igual tamaño llamado páginas. El tamaño de una página y un bloque

por lo general es el mismo y es de igual tamaño del bloque utilizado por el sistema

para recuperar información de un dispositivo de almacenamiento.

Una página se carga en un bloque en la memoria. Si un programa tiene tres

páginas, ocupa tres bloques en la memoria. Con esta técnica, el programa no tiene

que estar contiguo en la memoria. Dos páginas consecutivas pueden ocupar dos

bloques en la memoria no consecutivos.

SISTEMAS OPERATIVOS Pág. 28

Page 29: SISTEMAS OPERATIVOS

La ventaja de la paginación sobre el particionamiento es que dos programas,

cada uno de los cuales utiliza tres bloques no continuos, pueden reemplazarse por

un programa que necesita seis bloques. No hay necesidad de que un nuevo

programa espere hasta que seis bloques contiguos estén libres antes de ser

cargados en la memoria.

La paginación mejora la eficiencia en cierto grado, pero el programa

completo aún necesita estar en la memoria antes de ser ejecutado.

5.2.3. PAGINACIÓN BAJO DEMANDA

Es similar a un sistema de paginación con intercambio. Los programas residen en

un dispositivo físico, la memoria auxiliar. Cuando se quiere ejecutar un programa, se

carga en la memoria principal. Pero, en lugar de cargar el programa completo, se

utiliza un intercambiador “perezoso”. El intercambiador perezoso nunca carga una

página en la memoria principal a menos que sea preciso. Tiene muchas ventajas.

Reduce el tiempo de intercambio y la cantidad de memoria física necesaria,

partiendo de un grado de multiprogramación más elevado.

Puede plantearse el problema de que en una instrucción se direccione a una página

que no está en la memoria central, en este caso la instrucción no se puede ejecutar

en ese momento. Esto es lo que se conoce como fallo de página.

Es decir, cuando se produce un fallo de página hay tres aspectos a tener en cuenta:

Servicio a la interrupción de página. El proceso es detenido.

Incorporación de la página. Mediante una instrucción de I/O se transfiere la

página lógica que se necesita en una página física desde una cola para ese

dispositivo auxiliar.

SISTEMAS OPERATIVOS Pág. 29

Page 30: SISTEMAS OPERATIVOS

5.2.4. SEGMENTACION BAJO DEMANDA

Una técnica similar a la paginación es la segmentación bajo demanda. En la

paginación un programa se divide en páginas de igual tamaño, por lo cual no es la

manera cómo piensa un programador, ya que este piensa en términos de módulos,

no de páginas de igual tamaño. En la segmentación bajo demanda el programa se

divide en segmentos que coinciden con la idea del programador. Estos se cargan en

la memoria, se ejecutan se reemplazan por otros módulos del mismo programa o de

un programa distinto.

5.2.5. PAGINACIÓN Y SEGMENTACIÓN COMBINADAS

Tanto la paginación como la segmentación tienen sus ventajas. La paginación

elimina la fragmentación externa y de este modo, aprovecha la memoria principal de

forma eficiente. Además, puesto que los fragmentos que se cargan y descargan de la

memoria principal son de tamaño fijo e iguales, es posible construir algoritmos se

gestión de memoria sofisticados que aprovechen mejor el comportamiento de los

programas. La segmentación tiene las ventajas antes citadas, incluida la capacitación

de gestionar estructuras de datos que puedan crecer, la modularidad y el soporte de

la compartición y la protección. Para combinar las ventajas de ambas, algunos

sistemas están equipados con hardware del procesador y software del S.O.

En un sistema con paginación y segmentación combinadas, el espacio de

direcciones de un usuario se divide en varios segmentos según el criterio del

programador. Cada segmento se vuelve a dividir en varias páginas de tamaño fijo,

que tienen la misma longitud que un marco de memoria principal. Si el segmento

tiene menor longitud que la página, el segmento ocupará sólo una página. Desde el

punto de vista del programador, una dirección lógica todavía está formada por un

número de segmento y un desplazamiento en el segmento. Desde el punto de vista

de sistema, el desplazamiento del segmento se ve como un número de página dentro

del segmento y un desplazamiento dentro de la página.

SISTEMAS OPERATIVOS Pág. 30

Page 31: SISTEMAS OPERATIVOS

5.3 LA MEMORIA VIRTUAL 

La memoria virtual es una técnica para proporcionar la simulación  de  un 

espacio de  memoria mucho mayor que la memoria física de una máquina. Esta

"ilusión" permite que los programas se hagan sin tener en cuenta el tamaño exacto

de la memoria física.

La ilusión de la memoria virtual está soportada por el mecanismo de traducción

de memoria, junto con una gran cantidad de  almacenamiento  rápido  en  disco 

duro.  Así en  cualquier  momento  el  espacio  de direcciones virtual hace un

seguimiento de tal forma que una pequeña parte de él, está en memoria real y el

resto almacenado en el disco, y puede ser referenciado fácilmente.

Debido a que sólo la parte de memoria virtual que está almacenada en la memoria

principal, es accesible a la CPU, según un programa va ejecutándose, la proximidad

de referencias a memoria cambia, necesitando que algunas partes de la memoria

virtual se traigan a la memoria principal desde el disco, mientras que otras ya

ejecutadas, se pueden volver a depositar en el disco (archivos de paginación).

 

La memoria virtual ha llegado a ser un componente esencial de la mayoría de los

S.O actuales. Y como en un instante dado, en la memoria sólo se tienen unos pocos

fragmentos de un proceso dado, se pueden mantener más procesos en la memoria.

Es más, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se

descargan de la memoria. Sin embargo, el S.O debe saber cómo gestionar este

esquema.

Es una técnica que permite la ejecución de procesos que pueden no estar

completamente en memoria o sea que los programas pueden ser enviados a la

memoria física. Esto libera a los programadores de la preocupación por las

limitaciones del almacenamiento en memoria. No obstante la memoria virtual no es

fácil de implementar.

La capacidad de ejecutar un programa que se encuentra parcialmente en memoria

física tendría varias ventajas:

SISTEMAS OPERATIVOS Pág. 31

Page 32: SISTEMAS OPERATIVOS

Un programa ya no estaría restringido por la cantidad de memoria física

disponible. Los usuarios podrían escribir programas para un espacio de

direcciones virtuales muy grande, simplificando las labores de programación.

Como cada programa del usuario ocuparía menos memoria física, podrían

ejecutarse más programas al mismo tiempo, aumentando la utilización de la

UCP y la productividad, pero sin incrementar el tiempo de respuesta o el

tiempo de retorno.

Se requeriría menos E/S para cargar o intercambiar cada uno de los

programas del usuario, por lo que se ejecutarían más rápidos.

De esta manera un programa en ejecución que no se encontrara totalmente en

memoria beneficiaría tanto al usuario como al sistema.

La memoria virtual es la separación de la memoria lógica del usuario de la memoria

física. Esta separación permite proporcionar a los programadores una gran memoria

virtual cuándo solo se dispone de una memoria física pequeña. La memoria virtual

facilita la tarea de programación, puesto que el programador, ya no se tiene que

preocupar por la cantidad de memoria física disponible, sino dedicarse al problema

que debe solucionar. Una consecuencia de la memoria virtual es que las

superposiciones casi desaparecen.

Generalmente la memoria virtual se implementa mediante la paginación por

demanda. La segmentación por demanda también puede usarse para proporcionar

la memoria virtual pero es más complejo, debido a que los segmentos tienen

tamaños variables.

4.2. ADMINISTRADOR DE PROCESOS

El Administrador de Procesos (Process Manager) es el responsable de crear, quitar y modificar los estados de todos los procesos. Este también proporciona información sobre el estado de procesos al resto del sistema.

Un proceso es un programa en ejecución junto con su entorno asociado (registros, variables,..). El núcleo del sistema operativo se relaciona con los procesos, creándolos, terminándolos y respondiendo a cualquier petición de servicios de estos.

SISTEMAS OPERATIVOS Pág. 32

Page 33: SISTEMAS OPERATIVOS

Los estados en que pueden encontrarse los procesos los controla el sistema operativo y son transparentes al usuario.

Se dividen en:

a) Estados activos: Son aquellos que compiten por el procesador o están en condiciones de hacerlo:

En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando.

Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.

Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc.El proceso necesita que ocurra algún evento que le permita poder proseguir su ejecución.

b) Estados inactivos: Son aquellos que no pueden competir por el procesador, pero pueden volver a hacerlo si se soluciona el problema que los ha dejado “en suspenso”.

Suspendido bloqueado: proceso que ha sido suspendido y que además está a la espera de un evento para desbloquearse.

Suspendido preparado: proceso que ha sido simplemente suspendido.

Dentro de la administración de procesos encontramos algoritmos para la planificación de la CPU tales como:

a) Planificación de Plazo Fijo: En este tipo de algoritmo se programan ciertos trabajos para desarrollarse en un plazo de tiempo definido o plazo fijo, este es muy complejo dado que el usuario debe informar por adelantado las necesidades o recursos del proceso.

b) Planificación FIFO: Los procesos se mantienen en una cola listos y ordenados por tiempo de llegada y cuando un proceso pasa de bloqueado a listo pasa al último lugar en la cola. Este algoritmo no garantiza buenos resultados en cuanto al tiempo de respuesta dado que a veces los procesos largos hacen esperar largos periodos de tiempo a los procesos más cortos.

c) Planificación por Turno Rotatorio: Se mantiene en procesos listos, cada uno de ellos tiene asignado un tiempo de ejecución llamado cuanto. Si el proceso agota, se bloquea o termina antes de agotar su cuanto otro proceso pasa a ocupar la CPU. El cuanto equivale a un número fijo de ciclos de reloj.

SISTEMAS OPERATIVOS Pág. 33

Page 34: SISTEMAS OPERATIVOS

PROGRAMAS

Es una serie de instrucciones no activas escritas por un programador y

almacenada en un disco. Este puede o no convertirse en tarea.

TAREAS

Un programa se vuelve una tarea partir del momento en que se selecciona

para su ejecución hasta que finaliza la misma y se convierte de nuevo en un

programa. Durante este periodo, una tarea puede o no ejecutarse. Puede residir de

un disco esperando a ser cargada en la memoria en espera de un evento de

entrada/ salida o puede residir en la memoria cuando el CPU la este ejecutando. El

programa se comporta como una tarea en todas estas situaciones. Cuando un

trabajo ha terminado de ejecutarse, se vuelve un programa y de nuevo reside en el

disco. El sistema operativo ya no gobierna el programa.

PROCESO

Un proceso es un programa en ejecución. Es un programa que ha iniciado

pero no se ha terminado. En otras palabras, un proceso es una tarea que reside en

la memoria. Se ha seleccionado entre otras tareas en espera y se ha cargado en la

a memoria. Un proceso puede ejecutarse en el momento o puede estar esperando

tiempo en el CPU. Mientras la tarea esté en la memoria, es un proceso

DIAGRAMA DE ESTADO

La relación entre un programa, una tarea y un proceso se esclarece si se considera

cómo un programa se vuelve tarea y como una tarea se vuelve proceso. Esto puede

ilustrarse con un diagrama de estado que muestra los diferentes estados de cada

una de estas entidades.

Un programa se vuelve una tarea cuando es seleccionado por el sistema operativo y

llevado al estado de espera. Permanece en un estado hasta que pueda cargarse en

la memoria.

SISTEMAS OPERATIVOS Pág. 34

Page 35: SISTEMAS OPERATIVOS

Cuando hay espacio disponible en la memoria para cargar el programa total o

parcialmente, la tarea cambia al estado listo. Ahora se convierte en un proceso.

Permanece en la memoria y en este estado hasta que el CPU pueda ejecutarlo,

cambia al estado de ejecución en este momento. Cuando esta en estado de

ejecución, ocurre una de las tres cosas siguientes

El proceso se ejecuta hasta q necesita E/S.

El proceso agota su espacio de tiempo asignado.

El proceso termina.

PLANIFICADORES

El planificador de tareas

Cambia una tarea del estado de espera al estado listo, o del estado de ejecución al

estado de terminación. En otras palabras, un planificador de tareas es responsable

de crear un proceso a partir de una tarea y de terminar un proceso.

Planificador de procesos

Cambia un proceso de un estado a otro. Cambia un proceso de estado de ejecución

al estado de espera cuando el proceso está esperando que ocurra un evento.

Cambia un proceso de estado de espera al estado listo si ha expirado el tiempo

asignado.

COLAS DE ESPERA

Para manejar varios procesos y tareas, el administrador de procesos utiliza la cola

de espera (lista de espera). Asociada con cada tarea o proceso hay un bloque de

control de tareas o bloque de control de procesos que guarda información sobre esa

tarea o proceso. El administrador de proceso almacena el bloque de control de

tareas o de procesos en las colas de espera, en vez de la tarea o el proceso mismo.

El bloque de control de tarea so el bloque de control de procesos es el

representante de la tarea o el proceso en espera.

SISTEMAS OPERATIVOS Pág. 35

Page 36: SISTEMAS OPERATIVOS

PROCESO DE SINCRONIZACION

La idea global que se sustenta al administrador de procesos es sincronizar distintos

procesos con diferentes recursos. Los recursos pueden utilizarse en cualquier

momento por cualquier usuario; se pueden presentar 2 situaciones: punto muerto y

privación.

Los puntos muertos

Ocurren cuando el sistema operativo no pone restricciones de recursos a los proceso y de igual manera también ocurren cuando empieza la ejecución de un proceso sin revisar primero si los recursos requeridos están listos y permite al proceso ocupar ese recurso todo el tiempo que lo desee.

Privación

Es lo opuesto al punto muerto. Puede ocurrir cuando el sistema operativo pone demasiadas restricciones a los recursos en un proceso

6.3.- ADMINISTRADOR DE DISPOSITIVOS

O Administrador de Entrada-Salida (I/O Manager) es responsable de gestionar la comunicación entre los distintos drivers de dispositivo, para lo cual implementa una interfaz bien definida que permite el tratamiento de todos los drivers de una manera homogénea, sin que intervenga el cómo funciona específicamente cada uno. Las responsabilidades del administrador de tarea son:

Monitorea constantemente cada dispositivo de entrada y salida para asegurarse de que funcione adecuadamente. También debe saber cunado un dispositivo ha terminado un proceso y está listo para tomar el siguiente en la lista.

El administrador mantiene constantemente una fila para cada dispositivo de entrada y salida o una o varias filas para dispositivos similares.

Controla las políticas de acceso a los dispositivos de entrada y salida.

SISTEMAS OPERATIVOS Pág. 36

Page 37: SISTEMAS OPERATIVOS

6.4.- ADMINISTRADOR DE ARCHIVOS

Un administrador de archivos, gestor de archivos o explorador de archivos (del inglés file manager) es una aplicación informática que provee acceso a archivos y facilita el realizar operaciones con ellos, como copiar, mover o eliminar archivos donde el usuario lo quiera ubicar.

Los primeros gestores de archivos fueron creados para sistemas operativos con interfaces de usuario de símbolos. Estos gestores de archivos generalmente representaban las unidades, particiones y directorios en su distribución física real y permitían un número limitado de operaciones sobre estos recursos. El primer gestor de archivos visual que se desarrolló (aunque aún en modo texto) fue Dired, que sentó las bases para los gestores de archivos que surgieron a continuación. Con el advenimiento de las interfaces gráficas, los gestores de archivos adquirieron diferentes funcionalidades, como la habilidad de asociar tipos de archivos a programas, y facilitaron la comprensión de conceptos mediante la representación gráfica de cada recurso, identificado con un icono.

6.5.- INTERFAZ DE USUARIO

Las interfaces básicas de usuario son aquellas que incluyen elementos como menús, ventanas, teclado, ratón y algunos otros sonidos que la computadora hace, y en general, todos aquellos canales por los cuales se permite la comunicación entre el ser humano y la computadora. La mejor interacción humano-máquina a través de una adecuada interfaz (Interfaz de Usuario), que le brinde tanto comodidad, como eficiencia.

Funciones principales

Puesta en marcha y apagado. Control de las funciones manipulables del equipo. Manipulación de archivos y directorios. Herramientas de desarrollo de aplicaciones. Comunicación con otros sistemas. Información de estado. Configuración de la propia interfaz y entorno. Intercambio de datos entre aplicaciones. Control de acceso. Sistema de ayuda interactivo.

SISTEMAS OPERATIVOS Pág. 37

Page 38: SISTEMAS OPERATIVOS

Tipos de interfaces de usuario

a) Según la forma de interactuar del usuario

Atendiendo a como el usuario puede interactuar con una interfaz, nos encontramos con varios tipos de interfaces de usuario:

Interfaces alfanuméricas (intérpretes de mandatos) que solo presentan texto. Interfaces gráficas de usuario (GUI, Graphics User Interfaces), las que

permiten comunicarse con el ordenador de una forma muy rápida e intuitiva representando gráficamente los elementos de control y medida.

Interfaces táctiles, que representan gráficamente un "panel de control" en una pantalla sensible que permite interaccionar con el dedo de forma similar a si se accionara un control físico.

b) Según su construcción Interfaces de hardware: Se trata de un conjunto de controles o dispositivos

que permiten la interacción hombre-máquina, de modo que permiten introducir o leer datos del equipo, mediante pulsadores, reguladores e instrumentos.

Interfaces de software: Son programas o parte de ellos, que permiten expresar nuestros deseos al ordenador o visualizar su respuesta.

SISTEMAS OPERATIVOS Pág. 38