UNIVERSIDAD DE PANAM FACULTAD DE INFORMTICA, ELECTRNICA Y
COMUNICACIN CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS
APUNTE: SISTEMAS OPERATIVOS: COMPONENTES ESTRUCTURALES Y TAXONOMAS
AUTOR: RAL ENRIQUE DUTARI DUTARI.
ASIGNATURA: ADMINISTRACIN DE SISTEMAS
OPERATIVOS Y REDES DE
COMPUTADORAS INF 204.
CARRERA: LICENCIATURA EN INFORMTICA PARA
LA GESTIN EDUCATIVA Y EMPRESARIAL.
CDIGO DE ASIGNATURA: 17431.
CDIGO DE HORARIO: 8272.
PERODO ACADMICO: SEGUNDO SEMESTRE DE 2010.
SEDE: CENTRO REGIONAL UNIVERSITARIO DE
VERAGUAS.
Uni vers idad de Panam8. Sede de Veraguas
Despacho del Director San11ago de Veraguas
A QUIEN CONCIERNE:
A solicitud de parte interesada, el suscrito Director del Centro Regional Universitario de
Veraguas, Profesor Csar Garca Escobar, en uso de sus facultades legales
CERTIFICA QUE: En cumplimiento del artculo 61 acpite m del Estatuto Universitario, en la Junta de
Centro Ordinaria N2 del 30 de junio de 2009 se aprobaron los programas analticos oficiales del rea de informtica, economa, humanidades, administracin de empresas y contabilidad de la
Licenciatura en Informtica para la Gestin Educativa y Empresarial.
Participaron en la elaboracin de dichos programas las comisiones siguientes: REA DE PROGRAMAS: Facultad de Administracin de Empresas y Contabilidad.
CODIGODE ABRE V NUM DENOMINACION COMISION ASIGNATURA
l. 17418 CON 108a Contabi 1 idad 1 Juan A vi la-Presidente Francisco Martnez-M iembro Jess Caballero-Miembro
2. 17423 CON 108b Contabilidad 11 Juan A vi la-Presidente Francisco Martnez-Miembro Jess Caballero-Miembro
3. 17434 CON 2 10 Anlisis de los Estados Juan A vi la-Presidente Financieros Francisco Martnez-Miembro
Jess Caballero-Miembro 4. 17419 A.E. JJOa Administracin de Zenaida Aguilar-Presidente
Empresas 1 Libertad R odrguez-M iembro Mara Rodrguez-Miembro Elicer Snchez-Miembro
5. 17424 A.E . 110b Administracin de Zena ida Agui lar-Presidente Empresas 11 Libertad Rodrguez-Miembro
Mara Rodrguez-Miembro E licer Snchez-Miembro
6. 17453 A.E 3 18 Desarrollo de Zenaida Aguilar-Presidente Emprendedores Libertad Rodrguez-Miembro
Mara Rodrguez-Miembro E licer Snchez-Miembro
TEL.:958-5 569/7623/6329 FAX:958-7622 E-MAIL: p [email protected], [email protected]
REA DE PROGRAMAS Facultad de Humanidades. CODIGODE ABRE V NUM DENOMINACION COMISION ASIGNATURA
l. 13854 ESP 100 Comunicacin oral y Dayra Agrazal-Presidente escrita Lionel Lpez-Miembro
2. 17428 fNG 125a Ingls Tcnico 1 Ndila Sanjur-Presidente 3. 17442 ING 125b Ingls Tcnico II Ndila Sanjur-Presidente 4. 17458 FlL 316 Etica Prof. y Relaciones Edgar Fernndez-Miembro
Humanas Jos Espinoza-Presidente 5. 17441 HIST 224 Historia de Pm e Ident. Sara Jordn de Troetsch-Presidente
Nacional Jos Angel Rangei-Miembro
REA DE PROGRAMAS: Facultad de Economfa. CODIGODE ABRE V NUM DENOMINACION COMISION ASIGNATURA
l. 17447 ECO 308 Formulacin y Aristides Gonzlez-Presidente Evaluacin de Nemesio Donoso-Miembro Proyectos Juan De Dios Gonzlez-Miembro
Rodolfo Alba-Miembro
REA DE PROGRAMAS F 1 d d 1 ~ acu ta e n orm tica, ectr mea y . El . e " OIDUDICaCI D . CODIGODE ABRE V NUM DENOMINACION COMISION ASIGNATURA
l. 17414 INF lOO Introduccin a la Informtica Oiga Batista-Presidente Diego Santimateo-Miembro
2. 17415 INF 102 Programacin I Giannina Nez-Presidente Diego Santimateo-Miembro
3. 17421 INF 120 Programacin II Giannina Nez-Presidente Diego Santimateo-Miembro
4. 17429 INF 200 Programacin III Giannina Nez-Miembro Diego Santimateo-Presidente
5. 17430 INF 202 Ingeniera de Software Ins de Hernndez-Miembro Educativo Giannina Nez-Presidente
6. 17431 INF 204 Administracin de Sistemas Edwin Cedeo-Presidente Operativos y Redes de Ral Dutari-Miembro Computadoras Diego Santimateo-Miembro
7. 17432 INF 206 Mantenimiento de Ra l Dutari-Presidente Computadoras y Perifri cos Diego Santimateo-Miembro
8. 17435 INF 2 12 Programacin IV Giannina Nez-Miembro Diego Santimateo-Presidente
9. 17436 fNF 214 Evaluacin de Software Mara Zeballos-Miembro Educativo Giannina Nez-Presidente
10. 17437 fNF 216 Diseo y Desarrollo de Oiga Batista-Miembro Pginas Web Mara Zeballos-Presidente
Diego Santimateo-Miembro ]l. 17438 INF 218 Anlisis y Diseo de Sistemas Edwin Cedeo-Presidente
Rubn Mendoza-Miembro Diego Santimateo-Miembro
12. 17440 INF 222 Metodologa de la Oiga Batista-Presidente Investigacin Diego Santimateo-Miembro
13. 17443 INF 300 Programacin V Alberto Camarena-Presidente Diego Santimateo-Miembro
14. 17444 INF 302 Programacin para Web Mara Zeballos-Presidente Diego Santimateo-Miembro
TEL. :958-5569/7623/6329 FAX:958-7622 E-MAIL: p gnunez@mai l.up.ac.p' [email protected]
.,
CODIGODE ABRE V NUM DENOMIN~CIN COMISIN ASIGNATURA
15. 17445 INF 304a Multimedia 1 Mara Zeballos-Presidente Giannina Nez-Miembro
16. 17446 INF 306 Base de Datos Avanzadas Rubn Mendoza-Presidente Diego Santimateo-Miembro
17. 17448 INF 310 Comercio Electrnico Osear Rodrguez-Presidente Diego Santimateo-Miembro
18. 17450 TNF 304b Multimedia JI Mara Zeballos-Miembro Giannina Nez-Presidente
19. 17451 INF 314 Desarrollo de Ambientes Giannina Nez-Presidente Virtuales/Ca laborativos Diego Santimateo-Miembro
20. 17452 INF 316 Evaluacin y Auditora de Osear Rodrguez-Presidente Sistemas Diego Santimateo-Miembro
21. 17454 TNF 320 A vanees Tecnolgicos Ins de Hernndez-Miembro Yahaira Jurez-Presidente Diego Santimateo-Miembro
22. 17455 INF 322 Seguridad en Redes Osear Rodrguez-Presidente Diego Santimateo-Miembro
23. 17457 INF 314 Prctica Profesional Giannina Nez-Presidente Diego Santimateo-Miembro
Para Jos fines que el interesado considere pertinentes se firma la presente certificacin, en
el Centro Regional Universitario de Veraguas, a los seis das del mes de julio de dos mil nueve.
TEL.:958-5569/7623/6329 FAX:958-7622 E-MAIL: p gnunez@mai l.up.ac.p' [email protected]
Universidad de Panam Sede de Vcraguas
CDIGO DE ABRE V NUM DENOMINACIN COMISIN ASIGNATURA
12. 17440 INF 222 Metodologa de la Oiga Batista-Presidente Investig&cin Diego Santimateo-Miembro
13. 17443 INF 300 Programacin V Alberto Camarena-Presidente Diego Santimateo-Miembro
14. 17444 INF 302 Programacin para Web Mara Zeballos-Presidente Diego Santimateo-Miembro
15. 17445 INF 304a Multimedia 1 Mara Zeballos-Presidente Giannina Nez-Miembro
16. 17446 INF 306 Base de Datos Avanzadas Rubn Mendoza-Presidente Di~o Santimateo-Miembro
17. 17448 INF 310 Comercio Electrnico Osear Rodrguez-Presidente Diego Santimateo-Miembro
18. 17450 INF 304b Multimedia II Mara Zeballos-Miembro Giannina Nez-Presidente
19. 17451 INF 314 Desarrollo de Ambientes Giannina Nez-Presidente Virtuales/Colaborativos Diego Santimateo-Miembro
20. 17452 INF 316 Evaluacin y Auditora de Osear Rodrguez-Presidente Sistemas Di~o Santimateo-Miembro
21. 17454 INF 320 Avances Tecnolgicos Ins de Hernndez-Miembro Yahaira Jurez-Presidente Diego Santimateo-Miembro
22. 17455 INF 322 Seguridad en Redes Osear Rodrguez-Presidente Diego Santimateo-Miembro
23. 17457 INF 314 Prctica Profesional Giannina Nez-Presidente Diego Santimateo-Miembro
Para los fines que el interesado considere pertinentes se firma la presente certificacin, en
el Centro Regional Universitario de Veraguas, a los veintisis das del mes de junio de dos mil nueve.
Escuela de Ingeniera en Informtica Facultad de Informtica, Electrnica y Comunicacin
"2009: AO DE LA EFICIENCIA Y LA PRODUCTIVIDAD" TEL.:958-5569!7623/6329 FAX:958-7622 E-MAIL: p [email protected], [email protected]
UNIVERSIDAD DE PANAMA SECRETARIA GENERAL
CERTIFICADO DE PRESTACIN DE SERVICIOS ACADMICOS
Na.130392 Fecha : 10/02/201 1
Pg . 7 d e 7
Nombre Profesor : RAUL ENRIQUE DU'l'ARI DUTARI Cdula : 09-00-0132-00758
* Ao2009 Sem: 2 Sede: VERAGUAS Dedicacin ; TIEMPO COMPLETO
Ca egor a : PROFESOR ES PECIAL TC Horas:
Ab r ev. / Num. ~ Cu r so IEC- 41 5B 1 01 3 8 8120 INF- 51 2B 101 48 8 1 22
INF- 2 0 4 1 7 431 8 2 7 0 INF- 206 1 7 43 2 8 2 7 1 INF-31 4 1 7 4 51 82 8 6
De s cripcin de l a Asigna t ura TE LE I NFORMAT ICA II I NGENIER I A DE SOFTWARE II ADMINISTRAC I ON DE SIST . OPERATI VOS Y REDES DE COM MANT ENI MIENTO DE COMPOTADORAS Y PERIFERI COS DESARROLLO DE AMBIENT ES VI RTOALE S/COLABORATIVOS
Es
UNIVERSIDAD DE PANAM
CENTRO REGIONAL UNIVERSITARIO DE VERAGUAS FACULTAD DE INFORMTICA, ELECTRNICA Y COMUNICACIN
LICENCIATURA EN INFORMTICA PARA LA GESTIN EDUCATIVA Y EMPRESARIAL PROGRAMA DE ASIGNATURA
DATOS GENERALES
INF 204 ADMINISTRACIN DE SISTEMAS OPERATIVOS Y REDES DE COMPUTADORAS
CDIGO DE ASIGNATURA: 17431 CRDITOS: 4 SEMESTRE: I HORAS SEMESTRALES: 96 HORAS DE TEORA: 3 HORAS DE PRCTICA: 3 PRERREQUISITOS: No tiene
COMISIN: Prof. Edwin Cedeo M.Sc.
Profesor Especial I Prof. Ral Enrique Dutari Dutari M.Sc.
Profesor Especial I Prof. Diego Santimateo Glvez M.Sc. Profesor Regular Titular
FECHA DE ELABORACIN: Marzo 2009
Prof. R. Dutari /Prof. D. Santimateo Administracin De SO y Redes de Computadoras INF 204 Lic. en Inf. para la Gestin Educ. y Emp. 5 de 17
PROGRAMACIN ANALTICA MDULO I: FUNDAMENTOS DE SISTEMAS OPERATIVOS. OBJETIVO PARTICULAR: Analizar las funciones bsicas, tipos y elementos estructurales de los sistemas operativos modernos. DURACIN: 12 Horas 2 Semanas
OBJETIVOS ESPECFICOS
(Conceptuales, Procedimentales,
Actitudinales)
CONTENIDOS (Conceptuales, Procedimentales,
Actitudinales)
ESTRATEGIA DIDCTICA EVALUACIN
Tcnicas Actividades Recursos 1. Analizar que es un
sistema operativo y las funciones que ejerce dentro de un sistema informtico.
1. Sistema Operativo 1.1. Concepto. 1.2. Funciones. 1.3. Importancia dentro de los
sistemas informticos.
Torbellino de ideas. Discusin
grupal. Exposicin
dialogada.
Presentacin de la asignatura. Conceptualizan al
Sistema Operativo como un grupo de componentes de software que administran al hardware, bajo escenarios diversos. Caracterizan las
funciones principales de los Sistemas Operativos. Reconocen la
importancia de los Sistemas Operativos dentro de los sistemas informticos modernos.
Tablero Marcadores Diapositivas Proyector
Multimedia con PC Referencia
bibliogrfica (12).
1. Diagnstica: 1.1. Ego Perfil del
estudiante 2. Formativa:
2.1. Tareas. 3. Sumativa:
3.1. Investigacin.
2. Analizar los componentes estructurales de los sistemas operativos y algunas de sus taxonomas
2. Componentes estructurales y taxonomas de los sistemas Operativos Modernos. 2.1. Estructura de los Sistemas
Operativos Modernos. 2.1.1. Kernel 2.1.2. Capa de Abstraccin
De Hardware (HAL) 2.1.3. Shell
Torbellino de ideas. Discusin
grupal. Exposicin
dialogada.
Analizan los componentes estructurales de los Sistemas Operativos. Comprenden las
taxonomas que organizan a los Sistemas
Tablero Marcadores Diapositivas Proyector
Multimedia con PC Referencias
bibliogrficas (11, 15)
1. Formativa: 1.1. Tareas.
2. Sumativa: 2.1. Investigacin
rdutariHighlight
rdutariHighlight
Prof. R. Dutari /Prof. D. Santimateo Mantenimiento de Computadoras y Perifricos INF 206 Lic. en Inf. para la Gestin Educ. y Emp. 6 de 17
MDULO I: FUNDAMENTOS DE SISTEMAS OPERATIVOS. OBJETIVO PARTICULAR: Analizar las funciones bsicas, tipos y elementos estructurales de los sistemas operativos modernos. DURACIN: 12 Horas 2 Semanas
OBJETIVOS ESPECFICOS
(Conceptuales, Procedimentales,
Actitudinales)
CONTENIDOS (Conceptuales, Procedimentales,
Actitudinales)
ESTRATEGIA DIDCTICA EVALUACIN
Tcnicas Actividades Recursos 2.1.4. Interfase de Usuario.
2.2. Taxonoma de los Sistemas Operativos.
2.2.1. Por estructura 2.2.2. Por servicios 2.2.3. Por procesos 2.2.4. Por usuarios
Operativos.
3. Analizar la evaluacin de las familias de Sistemas Operativos Modernos ms conocidos.
3. Estudio de casos de algunos de los Sistemas Operativos ms importantes de la actualidad. 3.1. Origen, historia y tipos. 3.2. Ambiente del sistema. 3.3. Administracin de medios de
almacenamiento y memoria. 3.4. Administracin de usuarios 3.5. Instalacin. 3.6. Familias de sistemas
operativos ms conocidos 3.6.1. Microsoft. 3.6.2. UNIX. 3.6.3. Linux. 3.6.4. Free-BSD 3.6.5. Macintosh. 3.6.6. Solaris 3.6.7. MS-DOS 3.6.8. Otros.
Torbellino de ideas. Discusin
grupal. Exposicin
dialogada. Trabajo
Grupal.
Investigan las caractersticas ms relevantes de las familias de Sistemas Operativos Modernos. Analizan la
evolucin de los Sistemas Operativos Modernos. Comparan a las
familias de Sistemas Operativos Modernos, en trminos de la forma en que administran los recursos del sistema.
Tablero Marcadores Diapositivas Proyector
Multimedia con PC Referencias
bibliogrficas
1. Formativa: 1.1. Tareas.
2. Sumativa: 2.1. Investigaciones 2.2. Taller 1 (3%)
rdutariHighlight
TABLA DE CONTENIDOS
1. Fines Del Apunte. ............................................................................ 1
1.1 Objetivo General. ............................................................................ 1
1.2 Objetivos Especficos. ..................................................................... 1
2. Observaciones Preliminares. .......................................................... 1
3. Concepto De Sistema Operativo. .................................................... 2
4. Evolucin De Los Sistemas Operativos. ......................................... 3
4.1 Generacin Cero. ............................................................................ 3
4.2 Primera Generacin. ....................................................................... 3
4.3 Segunda Generacin. ..................................................................... 4
4.4 Tercera Generacin. ....................................................................... 6
4.5 Cuarta Generacin. ......................................................................... 7
5. Atributos Esenciales De Los Sistemas Operativos. ...................... 10
6. Funciones De Los Sistemas Operativos. ...................................... 10
6.1 El Sistema Operativo Como Interfaz Usuario / Computadora. ...... 11
6.2 El Sistema Operativo Como Administrador De Recursos. ............ 14
iii
6.3 El Sistema Operativo Como Software Dinmico-Evolutivo. .......... 17
7. Importancia Dentro De Los Sistemas Informticos. ...................... 19
8. Estructura De Los Sistemas Operativos Modernos. ...................... 20
8.1 Ncleo O Kernel. ........................................................................... 20
8.2 Capa De Abstraccin De Hardware (HAL). ................................... 21
8.3 Interfaz De Programacin O API. .................................................. 22
8.4 Intrprete De Comandos O Shell. ................................................. 22
8.5 Interface De Usuario. .................................................................... 22
9. Taxonomas De Los Sistemas Operativos. ................................... 23
9.1 Por Su Estructura. ......................................................................... 23
9.1.1 Estructura Monoltica. ................................................................... 24
9.1.2 Estructura Jerrquica, Por Capas O Por Anillos. .......................... 25
9.1.3 Estructura Micro-Kernel. ............................................................... 28
9.1.4 Estructura Modular. ....................................................................... 29
9.2 Por Los Servicios Que Ofrece. ...................................................... 30
9.2.1 Por El Nmero De Procesos. ........................................................ 31
iv
9.2.1.1 Uniproceso. ................................................................................... 31
9.2.1.2 Multiproceso. ................................................................................. 32
9.2.2 Por El Nmero De Usuarios. ......................................................... 33
9.2.2.1 Monousuarios. ............................................................................... 33
9.2.2.2 Multiusuarios. ................................................................................ 33
9.2.3 Por El Nmero De Tareas. ............................................................ 34
9.2.3.1 Monotareas. .................................................................................. 34
9.2.3.2 Multitareas. ................................................................................... 34
9.2.4 De Acuerdo A La Forma En Que Ofrecen Sus Servicios. ............. 35
9.2.4.1 Sistemas Operativos De Red. ....................................................... 35
9.2.4.2 Sistemas Operativos Distribuidos. ................................................ 35
10. Conclusiones. ................................................................................ 38
11. Consignas De Aprendizaje Y Evaluacin. ..................................... 38
11.1 Evaluacin Formativa. ................................................................... 39
11.2 Evaluacin Sumativa. .................................................................... 39
12. Referencias Bibliogrficas. ............................................................ 39
v
1. FINES DEL APUNTE.
Este documento est diseado para que el participante conozca, comprenda y
discuta las principales caractersticas que identifican a los sistemas operativos.
En tal sentido, este documento realiza una introduccin a los temas ms
relevantes relacionados a los fundamentos de los sistemas operativos: su
concepto, funciones principales, importancia entre las aplicaciones informticas
en general. As mismo, tambin se consideran los componentes estructurales
ms relevantes de los sistemas operativos, as como sus taxonomas.
1.1 OBJETIVO GENERAL.
Analizar los componentes fundamentales y las taxonomas de los sistemas operativos.
1.2 OBJETIVOS ESPECFICOS.
Discutir la historia, el concepto, las funciones y la importancia de los sistemas operativos.
Establecer los componentes fundamentales de todo sistema operativo.
Debatir las clasificaciones que organizan a los sistemas operativos.
2. OBSERVACIONES PRELIMINARES.
El desarrollo de los sistemas operativos, conjuntamente con las redes de
computadoras, han posibilitado enormemente la expansin del computador
como herramienta de trabajo universal.
2
Cada da es ms frecuente encontrar puestos de trabajo donde anteriormente no
utilizaban los computadoras ni sus redes, y de un corto perodo de tiempo hacia
ac, se estn implementando rpidamente, sistemas informticos basados en
ambientes grficos y que utilizan como soporte base a las redes de
computadoras y al Internet.
Sin embargo, ambas tecnologas son poco conocidas por el pblico en general.
En consecuencia, esta brecha tecnolgica se pretende que sea cubierta, aunque
sea parcialmente, por este documento.
Inicialmente, se realizar una breve introduccin a los conceptos, funciones,
estructura, clasificacin e importancia de los sistemas operativos tradicionales,
para finalmente, analizar su estructura y taxonoma ms importantes.
3. CONCEPTO DE SISTEMA OPERATIVO.
Un sistema operativo, es un programa muy especial que se encarga
esencialmente de:
Administrar los recursos de hardware y software en el sistema.
Ofrecer al usuario un mecanismo de comunicacin entre l y el hardware del computador.
Es decir, un sistema operativo es un programa que controla la ejecucin de los
programas de aplicacin y que acta como interfaz entre el usuario de un
computador y el hardware de la misma [TANE08].
3
4. EVOLUCIN DE LOS SISTEMAS OPERATIVOS.
En la evolucin histrica de los sistemas operativos, al igual que en la del
hardware de las computadoras, se distinguen varios perodos o etapas
evolutivas, que se analizan a continuacin [SIGA06].
4.1 GENERACIN CERO.
Abarca la dcada de los aos 40 y se caracteriza por la ausencia de sistemas
operativos en los computadores. El usuario tena acceso completo al lenguaje
mquina y todas las instrucciones se codificaban manualmente [CERU03]. Los propios usuarios eran quienes controlaban la ejecucin de sus programas. Era la
poca en que los computadores estaban compuestos totalmente por sistemas
electromecnicos [TANE00].
4.2 PRIMERA GENERACIN.
Abarca los aos 50. La creacin del primer sistema operativo se le atribuye a los
laboratorios de investigacin de General Motors, y fue desarrollado para su
computador IBM 701 [SIGA06]. En 1955 General Motors y North American Aviation colaboraron para desarrollar un sistema operativo para el IBM 704.
Hacia 1957 ya se haban desarrollado, de manera particular, distintos sistemas
operativos para ese modelo de computador [TANE08].
El fin de estos primeros sistemas operativos era permitir en la mquina la
secuencia automtica de los trabajos de los usuarios. De esta forma se
consegua evitar el tiempo que se perda, y que poda ser considerable, desde
que un proceso terminaba su ejecucin hasta que comenzaba el siguiente. Para
ello los trabajos se organizaron en lotes [CERU03].
4
Un trabajo en ejecucin tena el control total de la mquina y no comenzaba otro
hasta que se llegaba al final del que estaba en ejecucin u ocurra un error. En
este ltimo caso el sistema operativo daba alguna explicacin rudimentaria sobre
lo que haba ido mal y proceda inmediatamente con el siguiente trabajo del lote.
4.3 SEGUNDA GENERACIN.
Con la introduccin de la multiprogramacin y el multiprocesamiento, se dio lugar
a la segunda generacin, que ocupa la primera parte de la dcada de los aos
60.
Estas tecnologas se desarrollaron debido al elevado coste que tenan los
computadores de aquella poca, como un intento de mejorar el rendimiento en
su utilizacin y aumentar el nmero de trabajos ejecutados en un intervalo de
tiempo dado [CERU03].
El elemento clave en la concepcin de la multiprogramacin fue la diferencia de
velocidades entre los dispositivos de entrada y salida y el procesador. Un
programa que realizaba una peticin de una operacin de E/S, y que no poda
continuar hasta que esta se hubiera completado, dejaba al procesador, el
recurso ms valioso del sistema, desocupado durante todo el tiempo de espera
[TANE08].
Con la multiprogramacin varios programas podan residir a la vez en memoria y
el procesador se poda conmutar rpidamente entre ellos, lo que permita que un
trabajo pudiera estar realizando clculos a la vez que otro lea de una cinta
magntica, un tercero escriba en un disco, y as sucesivamente.
En los sistemas con multiprocesamiento se utilizaban varios procesadores en un
nico computador para lograr una mayor potencia de clculo en la mquina.
5
Tambin aparecieron en esta poca los primeros sistemas de tiempo real
dedicados al control de procesos industriales y para monitorizar miles de puntos
con fines militares.
En estos sistemas, ms que tenerlos muy ocupados, se requera que su
respuesta ante una serie de sucesos externos fuera rpida. Por ejemplo, el
aumento de la temperatura en un punto de una refinera de petrleo debera
comunicarse inmediatamente para tomar las acciones oportunas para evitar una
explosin [CODO01].
Los sistemas ms significativos de esta poca fueron el Master Control Program
(MCP) de Burroughs diseado para su computador B5000 y el sistema SABRE
de IBM y la American Airlines destinados a las reservas de viajes. El MCP fue
escrito en un lenguaje de alto nivel y posea muchas de las caractersticas que
proporcionan los sistemas actuales: multiprogramacin, multiprocesamiento,
memoria virtual y la capacidad de depurar el lenguaje fuente [CERU03].
El sistema SABRE era un sistema de tiempo compartido, con miles de
terminales distribuidos por toda la geografa norteamericana, desde los cuales
se poda interactuar directamente con el sistema. El usuario haca una peticin
desde un terminal y el computador procesaba la peticin y responda a travs
del terminal tan pronto como poda, a veces en un tiempo inferior a un segundo.
Sin embargo, este sistema estaba dirigido a una nica funcin.
El primer sistema de tiempo compartido de propsito general fue el Compatible
Time-Sharing System (CTSS) desarrollado en el Instituto Tecnolgico de
Massachusetts (MIT) bajo la direccin de Fernando Corbat y que corra en un
IBM 709/7090. El proyecto se inici en 1961 y se puso en funcionamiento en
1963. Entre las caractersticas de este sistema estaban:
6
Empleo de numerosos terminales conectados al computador que se podan usar al mismo tiempo.
Cada terminal de usuario pareca tener disponible toda la potencia de la mquina y todo el software del computador.
El tiempo necesario para realizar tareas no muy grandes era lo suficientemente pequeo como para hacer pensar a los usuarios que
tenan la mquina slo para su servicio.
Dispona de varios compiladores, utilidades para el manejo de archivos y aplicaciones especficas.
4.4 TERCERA GENERACIN.
Esta generacin se inicia con la introduccin en 1964 de la familia de
computadores lBM/360. El sistema operativo de esta familia de computadores
era el OS/360.
Aunque el sistema operativo no posea algunas de las caractersticas ms
avanzadas de otros sistemas, como el MCP de Burroughs, exceda con mucho
al resto de los sistemas en el rea de apoyo al cliente [SIGA06].
El sistema operativo dispona de la mayor cantidad de programas de utilidad
para facilitar el uso del computador que se haba suministrado hasta la fecha.
Adems, el sistema permita avanzar en la serie de hardware, segn
aumentaban las necesidades de potencia de clculo, sin que fuera necesario
cambiar de sistema operativo, lo que representa un avance en la poca, ya que
significaba que se ofreca cierto nivel de independencia entre el hardware y el
sistema operativo.
7
La generacin se extiende hasta mediados de los aos 70. Se caracteriza por el
desarrollo de sistemas operativos grandes y costosos que pretendan incorporar
todas las posibilidades. Algunos proporcionaban simultneamente el
procesamiento por lotes, el procesamiento en tiempo real, el procesamiento en
tiempo compartido y el multiprocesamiento. El inconveniente era que obligaban a
muchos usuarios a pagar un precio muy elevado y aprender ms de lo que
realmente necesitaban.
4.5 CUARTA GENERACIN.
La cuarta generacin corresponde al estado actual del arte [TANE08]. La mayora de los sistemas operativos de los computadores grandes son
descendientes directos de los de la tercera generacin, tales como el Multics de
Honeywell, VMS y VM/370 de IBM y el Scope de Control Data. Todos estos
sistemas disponan de:
Multiprogramacin.
Tiempo compartido.
Memoria virtual.
Procesos secuenciales que cooperan por medio de semforos.
Sistemas de archivos jerrquicos.
Entrada / Salida independiente del dispositivo.
Posiblemente el ms influyente de los sistemas operativos actuales sea Unix. Su
desarrollo se realiz adoptando muchas de las ideas que se introdujeron en
Multics.
8
Sin embargo, existe una diferencia esencial entre ambos; consiste en que
Multics se desarroll para grandes computadores; en cambio, Unix se dise a
principio de los aos 70 en los laboratorios de la Bell en torno al minicomputador
ms caracterstico de la poca, el PDP-ll de Digital y con una dimensin de un
orden de magnitud inferior a aquel, lo que lo convierte en un sistema operativo
ms accesible al pblico en general [CERU03].
A pesar de su menor tamao Unix retiene la mayor parte de las caractersticas
ms tiles de su predecesor, tales como procesos, sistema de archivos
jerrquicos, independencia de los dispositivos, redireccin de la entrada-salida y
un lenguaje de intrprete de rdenes (shell) de alto nivel. La mayor parte de Unix
se escribi en el lenguaje C, lo que le ha permitido ser transportado a una gran
variedad de procesadores, desde grandes mquinas a computadores personales
[SIGA06].
En los aos 80, paralelamente a la popularizacin de las computadoras
personales, se desarrollaron un gran nmero de sistemas operativos para ellas,
entre los que destacan el MS-DOS, Apple-DOS, CP/M y Xenix. Todos estos
sistemas estaban muy limitados en sus funciones. Se desarrollaron inicialmente
para microprocesadores de 8 y16 bits con poca capacidad de memoria.
Sin embargo, la velocidad y la capacidad de memoria actuales son ahora
suficientes como para soportar sistemas operativos con todas sus posibilidades,
tales como la familia MS-Windows y los Linux, entre otros.
Dos aspectos que caracterizan los sistemas actuales son las redes de
computadores y los sistemas distribuidos. Los usuarios de la cuarta generacin
no estn limitados ya a comunicarse con un solo computador en tiempo
compartido. Los computadores personales estn equipados con programas de
9
comunicaciones que les permiten acceder a informaciones localizadas en bases
de datos dispersas geogrficamente [CODO01].
Sistemas operativos como Unix y VMS de Digital, creados originalmente con el
fin de servir a una nica mquina, han evolucionado para adaptarse a las redes
de computadores. El sistema de archivos de red de Sun Microsystems conocido
como NFS (Network File System) fue uno de los primeros sistemas de archivos
basado en Unix en ofrecer un espacio nico de nombres de archivos situado por
encima de una red de servidores y estaciones de trabajo.
Actualmente el diseo de los sistemas operativos encuentra nuevos retos con la
construccin de computadores paralelos que disponen de miles de
procesadores.
Para estas mquinas los sistemas operativos deben dar soporte a la
comunicacin y a la sincronizacin extremadamente rpida de miles de
procesadores. Cada procesador puede disponer de sus propios dispositivos, lo
que hace que el sistema operativo deba controlar a la vez a miles de canales de
entrada / salida. Conceptos tales como memoria virtual y tiempo compartido
deben extenderse para adaptarse al paralelismo masivo.
Quizs el desafo ms importante es conseguir que el entorno de programacin
de estos sistemas permita desarrollar programas paralelos con un esfuerzo slo
ligeramente superior al de la escritura de un programa secuencial [CODO01].
10
5. ATRIBUTOS ESENCIALES DE LOS SISTEMAS
OPERATIVOS.
Cualquier software que, mnimamente, se considere como un sistema operativo,
debe evidenciar tres atributos esenciales, que a grandes rasgos pueden ser
descritos como [ARCA02]:
Comodidad: Un sistema operativo hace que un computador sea ms cmoda de utilizar.
Eficiencia: Un sistema operativo permite que los recursos de un sistema informtico se aprovechen de una manera ms eficiente.
Capacidad de evolucin: Un sistema operativo debe construirse de modo que permita el desarrollo efectivo, la verificacin y la introduccin
de nuevas funciones en el sistema y, a la vez, no interferir en los servicios
que brinda.
6. FUNCIONES DE LOS SISTEMAS OPERATIVOS.
Las funciones principales que debe desempear cualquier sistema operativo
moderno - que se derivan directamente de sus atributos - son, esencialmente
[CAAN01]:
Ofrecer una interface Usuario / Computadora funcional.
Ofrecer un sistema eficiente de administracin de recursos de hardware y software.
Ofrecer una plataforma de trabajo flexible y verstil, capaz de evolucionar conjuntamente a los avances tecnolgicos del hardware y del software
que coexisten con l.
11
A continuacin, se tratarn estos tres aspectos de los sistemas operativos con
mayor nivel de detalle [CAAN01].
6.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 jerrquica, como se
muestra en la siguiente ilustracin:
Ilustracin 1: Niveles Y Vistas De Un Sistema Informtico
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 informtico en trminos de aplicaciones.
Las aplicaciones pueden construirse con un lenguaje de programacin y son
desarrolladas por programadores de aplicaciones. Si se tuviera que desarrollar
un programa de aplicacin como un conjunto de instrucciones mquina que sean
del todo responsables del control del hardware, se tendra una tarea abrumadora
y compleja.
12
Para facilitar esta tarea, se ofrecen una serie de programas de sistemas.
Algunos de estos programas se denominan utilidades e implementan funciones
muy utilizadas que ayudan a la creacin de los programas, la gestin de los
archivos y el control de los dispositivos de entrada / salida. Los programadores
hacen uso de estos servicios en el desarrollo de una aplicacin y sta, mientras
se est ejecutando, invoca a estas utilidades para llevar a cabo ciertas acciones.
El programa de sistemas ms importante es el sistema operativo. El sistema
operativo oculta al programador los detalles del hardware y le proporciona una
interfaz cmoda para utilizar el sistema. Acta como mediador, facilitndole al
programador y a los programas de aplicacin el acceso y uso de todas esas
caractersticas y servicios.
De forma resumida, un sistema operativo ofrece servicios en las reas
siguientes:
Creacin de programas: El sistema operativo ofrece una variedad de caractersticas y servicios, tales como los editores y los depuradores
(debuggers), para ayudar al programador en la creacin de programas.
Normalmente, estos servicios estn en forma de programas de utilidad
que no forman realmente parte del sistema operativo, pero que son
accesibles a travs del mismo.
Ejecucin de programas: Para ejecutar un programa se necesita un cierto nmero de tareas. Las instrucciones y los datos se deben cargar en
la memoria principal, los archivos y los dispositivos de entrada / salida se
deben inicializar y se deben preparar otros recursos. El sistema operativo
administra todas estas tareas para el usuario.
Acceso a los dispositivos de entrada salida (E/S): Cada dispositivo de E/S requiere un conjunto propio y peculiar de instrucciones o de seales
13
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 comprensin, no slo 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 ms, es el sistema
operativo el que se encarga de los detalles. Es ms, en el caso de
sistemas con varios usuarios trabajando simultneamente, es el sistema
operativo el que brinda los mecanismos de control para controlar el
acceso a los archivos.
Acceso al sistema: En el caso de un sistema compartido o pblico, el sistema operativo controla el acceso al sistema como un todo y a los
recursos especficos del sistema. Las funciones de acceso pueden
brindar proteccin, a los recursos y a los datos, ante usuarios no
autorizados y debe resolver los conflictos en la propiedad de los recursos.
Deteccin y respuesta a errores: Cuando un sistema informtico est en funcionamiento pueden producirse varios errores. Entre estos se
incluyen los errores internos y externos del hardware, tales como los
errores de memoria, fallos o mal funcionamiento de dispositivos y distintos
tipos de errores de software, como el desbordamiento aritmtico, el
intento de acceder a una posicin prohibida de memoria y la incapacidad
del sistema operativo para satisfacer la solicitud de una aplicacin. En
cada caso, el sistema operativo debe dar una respuesta que elimine la
condicin de error con el menor impacto posible sobre las aplicaciones
que estn en ejecucin. La respuesta puede ser desde terminar el
programa que produjo el error, hasta reintentar la operacin o,
simplemente, informar del error a la aplicacin.
14
Contabilidad: Un buen sistema operativo debe recoger estadsticas de utilizacin de los diversos recursos y supervisar los parmetros de
rendimiento tales como el tiempo de respuesta. Para cualquier sistema,
esta informacin es til para anticiparse a la necesidad de mejoras futuras
y para ajustar el sistema y as mejorar su rendimiento. En un sistema
multiusuario, la informacin puede ser utilizada con propsito de cargar
en cuenta para efectos de cobro por el uso de los servicios del sistema -
.
6.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 gestin de estos recursos.
Se puede afirmar que es el sistema operativo el que controla el traslado,
almacenamiento y proceso de los datos? Desde un cierto punto de vista, la
respuesta es afirmativa: Administrando los recursos del computador, el sistema
operativo tiene el control sobre las funciones bsicas 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. (Por ejemplo, un sistema de calefaccin de una estancia es
controlado por un termostato, que es algo completamente diferente de los
aparatos de generacin de calor y de distribucin del calor). Este no es el caso
de un sistema operativo, que no es habitual como mecanismo de control en dos
aspectos:
15
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 ms que un programa del computador.
Como otros programas de computador, da instrucciones al procesador. La
diferencia clave est en el propsito del programa.
El sistema operativo dirige al procesador en el empleo de otros recursos del
sistema y en el control del tiempo de ejecucin de otros programas. Pero para
que el procesador pueda hacer estas cosas, debe cesar la ejecucin del
programa del sistema operativo y ejecutar otros programas.
As pues, el sistema operativo cede el control al procesador para hacer algn
trabajo "til" y luego lo retoma durante el tiempo suficiente para preparar el
procesador para llevar a cabo la siguiente parte del trabajo. Los mecanismos
involucrados en estas acciones, se analizan con ms detalle cuando se estudia
la teora de control, descripcin y sincronizacin de procesos, que rebasa los
propsitos de este documento.
La ilustracin que se muestra a continuacin, presenta los recursos principales
que son administrados por el sistema operativo:
16
Ilustracin 2: El Sistema Operativo Como Administrador De Recursos
Una parte del sistema operativo est en la memoria principal. En esta parte est
el ncleo (kernel), que incluye las funciones utilizadas con ms frecuencia en el
sistema operativo y, en un momento dado, puede incluir otras partes del sistema
operativo que estn en uso. El resto de la memoria principal contiene datos y
otros programas de usuario.
A grandes rasgos1, la asignacin de este recurso (la memoria principal) es
controlada conjuntamente por el sistema operativo y por el hardware de gestin
de memoria en el procesador. El sistema operativo decide cundo puede
utilizarse un dispositivo de E/S por parte de un programa en ejecucin y controla
el acceso y la utilizacin de los archivos.
1 Esta temtica es analizada con mayor profundidad en un curso formal de
Sistemas Operativos.
17
El procesador es, en si mismo, un recurso y es el sistema operativo el que debe
determinar cunto tiempo del procesador debe dedicarse a la ejecucin de un
programa de usuario en particular. En el caso de sistemas multiprocesador, la
decisin debe distribuirse entre todos los procesadores.
6.3 EL SISTEMA OPERATIVO COMO SOFTWARE
DINMICO-EVOLUTIVO.
Un sistema operativo importante no puede permanecer esttico en el tiempo.
Obligatoriamente debe evolucionar a medida que transcurre su vida til tiempo
por una serie de razones:
Actualizaciones del hardware y nuevos tipos de hardware: Por ejemplo, las primeras versiones de UNIX y OS/2 no empleaban
mecanismos de paginacin, porque funcionaban en mquinas sin
hardware de paginacin2. Las versiones ms recientes de estos sistemas
operativos se han modificado para aprovechar las capacidades de la
paginacin. Por otro lado, el empleo de terminales grficos y terminales
de pantalla completa, en lugar de los terminales de lneas, puede influir en
el diseo de los sistemas operativos. Por ejemplo, un terminal grfico
puede permitirle al usuario ver diferentes aplicaciones al mismo tiempo, a
travs de ventanas en la pantalla. Esto necesita un soporte ms
2 La paginacin de memoria es un concepto que se estudia en los cursos
de sistemas operativos formales cuando se analiza el concepto de
memoria virtual -, y se considera muy avanzado para los propsitos de
este documento.
18
sofisticado en el sistema operativo, que el simple sistema de terminal de
lneas.
Nuevos servicios: Como respuesta a Las demandas del usuario o a las necesidades de los administradores del sistema, el sistema operativo
ampliar su oferta de servicios. Por ejemplo, si se determina que es difcil
de mantener un buen rendimiento para los usuarios con las herramientas
existentes, se deben aadir nuevas medidas y herramientas de control al
sistema operativo. Otro ejemplo es el de las nuevas aplicaciones que
exigen el uso de ventanas en la pantalla, que originalmente, el sistema
operativo no ofrece de manera nativa. Esta caracterstica requiere
actualizaciones mayores en el sistema operativo.
Correcciones: Desafortunadamente, el sistema operativo, como cualquier otro componente tecnolgico creado por el hombre, es
propenso a tener fallos, errores y omisiones en la programacin del
sistema, que se descubrirn con el curso del tiempo y que es necesario
corregir. Por supuesto, estas correcciones pueden introducir nuevos fallos
a su vez y as sucesivamente.
La necesidad de hacer cambios en un sistema operativo de forma regular
introduce ciertos requisitos en el diseo. Una afirmacin obvia es que el sistema
debe tener una construccin modular, con interfaces bien definidas entre los
mdulos y debe estar bien documentado.
Para sistemas grandes, como normalmente son los sistemas operativos
actuales, no es adecuado lo que podra denominarse modularizacin elemental.
Es decir, debe hacerse mucho ms que dividir simplemente un programa en
subrutinas. Se debe disear explcitamente el sistema para que dichas
actualizaciones se puedan implementar de manera sistemtica, sin comprometer
las capacidades previamente implementadas en el sistema.
19
7. IMPORTANCIA DENTRO DE LOS SISTEMAS
INFORMTICOS.
En funcin a la temtica desarrollada en el apartado 6.1, el usuario final, en
general, ignora la importancia y muchas veces, hasta la existencia -, del
sistema operativo dentro del computador. Sin embargo, al momento en que se
presentan problemas de mal funcionamiento del sistema ya sea a nivel del
hardware o del software -, repentinamente este componente de software cobra
una relevancia significativa.
Sin embargo, slo desde el punto de vista del desarrollo de software, el sistema
operativo tiene una importancia crucial dentro del sistema. Esto por cuanto que
si se tuviera que programar desde cero, las aplicaciones modernas, hablndole directamente al hardware, simplemente sera una tarea colosal y
extremadamente difcil de alcanzar, tomando en cuenta las refinadas interfaces
que se disponen, as como la enorme funcionalidad que ofrecen las aplicaciones
actuales.
Es por esta razn que existen los compiladores e intrpretes, para facilitar la
tarea de la programacin de sistemas. Ellos implementan funciones muy
utilizadas que ayudan a la creacin de los programas, la gestin de los archivos
y el control de los dispositivos de entrada / salida. El desarrollador de software
utiliza estas herramientas en la implementacin de aplicacin en tanto que ella
la aplicacin -, en el momento que se ejecuta, utiliza a estas utilidades para
llevar a cabo ciertas acciones.
Precisamente all radica la importancia del sistema operativo, ya que es la
herramienta principal que permite ocultar, al programador, los detalles del
hardware y le proporciona una interfaz cmoda para implementar y utilizar los
sistemas. Acta como mediador, facilitndole al programador y a los programas
20
de aplicacin el acceso y uso de todas esas caractersticas y servicios de bajo
nivel.
8. ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
MODERNOS.
El sistema operativo est formado por una serie de componentes especializados
en determinadas funciones. Cada sistema operativo estructura estos
componentes de forma distinta. En esta seccin se describen los distintos
componentes que conforman un sistema operativo [CAAN01].
En todos los sistemas operativos de cierta importancia, se pueden encontrar los
componentes bsicos que se describen a continuacin y se observan en la
siguiente ilustracin.
Ilustracin 3: Componentes Esenciales De Los Sistemas Operativos
Conceptualmente y de manera sumamente simplificada, el sistema operativo
est formado por tres capas principales.
8.1 NCLEO O KERNEL.
Normalmente, es la capa ms cercana al hardware se denomina ncleo (kernel) y es la que gestiona los recursos hardware del sistema y la que suministra toda
la funcionalidad bsica del sistema operativo. Por seguridad para el sistema, los
21
usuarios normalmente no pueden dar instrucciones al ncleo del sistema de
manera directa, mientras que si es posible hacerlo a las otras capas.
8.2 CAPA DE ABSTRACCIN DE HARDWARE (HAL).
La capa de abstraccin de hardware (HAL, Hardware Abstraction Layer), es un
concepto novedoso pero no estndar, implementado reciente por la empresa
Microsoft en los sistemas operativos Windows [SIGA06].
Esencialmente, constituye un sistema libreras de software que se ubican entre
el hardware propiamente dicho y el ncleo del sistema, aislndolo casi por
completo del hardware.
El nivel HAL es quien manipula casi todas las acciones sobre el hardware, y a su
vez, el ncleo del sistema, casi siempre debe interactuar con el HAL para
realizar operaciones sobre el hardware.
En detalle, el HAL establece una correspondencia de rdenes y respuestas
genricas del hardware, a nivel general para comunicarse con el kernel -, y las
mismas rdenes y respuestas, ahora especficas a nivel de un hardware en
particular tal como la plataforma x86 de Intel, los Power PC de Motorola, o los
procesadores Alpha de DEC -.
Este sistema provoca que el bus del sistema, el controlador DMA, el controlador
de interrupciones, los relojes del sistema, as como el sistema de memoria sean
todos idnticos para el kernel del sistema operativo.
Sin embargo, fuera del mundo Microsoft, este es un desarrollo tecnolgico que
no est estandarizado, pero que promete mucho a futuro, al elevar los niveles de
portabilidad de los sistemas operativos.
22
8.3 INTERFAZ DE PROGRAMACIN O API.
Por otro lado, la capa de servicios o llamadas al sistema ofrece a los programas
unos servicios en forma de una interfaz de programacin 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 mquina virtual extendida a los programas. De esta
forma se facilita la elaboracin de stos, puesto que se apoyan en las funciones
que le suministra el sistema operativo.
8.4 INTRPRETE DE COMANDOS O SHELL.
La capa de intrprete de mandatos o Shell suministra una interfaz a travs de la cual el usuario puede dialogar de forma interactiva con la computadora,
generalmente basada en una lnea de comandos o consola. El Shell recibe los
mandatos u rdenes del usuario, los interpreta y, si puede, los ejecuta. Dado que
el Shell suele ejecutar en nivel de usuario, algunos autores consideran que no
forma parte del sistema operativo, con quienes se diverge de opinin.
8.5 INTERFACE DE USUARIO.
Finalmente, la interface de usuario ofrece el entorno donde los usuarios finales
pueden interactuar con el sistema operativo, va las muy conocidas interfaces
grficas de usuario. En ellas, a travs de un sistema icnico y con un apuntador,
el usuario final puede interactuar con el sistema operativo.
Este tipo de interface resulta muy fcil de utilizar por parte de los usuarios no
experimentados. Pero, sin embargo, generalmente no ofrece todas las
posibilidades que tienen las herramientas de software.
23
En tal sentido, actualmente se mantiene un debate entre la pertinencia o no de
las interfaces grficas de usuario, frente a las interfaces de lnea de comandos,
al momento de requerir que el software ofrezca todas sus posibilidades de
accin; en tanto que por otro lado, se analizan sus facilidades de uso.
En tal sentido el eje de la discusin gira desde la potencia que ofrecen las
herramientas, y llega hasta su facilidad de uso, estando la discusin centrada en
cul es el punto intermedio entre estas tendencias de operacin, donde se logra
explotar todo el potencial de las aplicaciones, al mismo tiempo que ellas siguen
siendo fciles y sencillas de utilizar.
9. TAXONOMAS DE LOS SISTEMAS OPERATIVOS.
En esta seccin se describirn las caractersticas que clasifican a los sistemas
operativos. Bsicamente se cubrirn tres clasificaciones: sistemas operativos por
su estructura (visin interna), sistemas operativos por los servicios que ofrecen
y, finalmente, sistemas operativos por la forma en que ofrecen sus servicios
(visin externa).
9.1 POR SU ESTRUCTURA.
Segn [SIGA06], se deben observar dos tipos de requisitos cuando se construye un sistema operativo:
Requisitos de usuario: El sistema debe ser fcil de usar y de aprender, seguro, rpido y adecuado al uso al que se le quiere destinar.
Requisitos del software: Bajo este enfoque, se engloban aspectos tales como el mantenimiento del sistema, su forma de operacin, las
restricciones de uso bajo las que funciona, su eficiencia, su tolerancia
frente a los errores y su flexibilidad en general.
24
En funcin a estas premisas, se describen las distintas estructuras que
presentan los actuales sistemas operativos para satisfacer las necesidades que
de ellos se quieren obtener.
9.1.1 ESTRUCTURA MONOLTICA.
Es la estructura que utilizaron los primeros sistemas operativos, que estaban
constituidos fundamentalmente por un solo programa compuesto de un conjunto
de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra,
tal como se puede apreciar en la siguiente ilustracin [SIGA06]:
Ilustracin 4: Esquema General De Los Sistemas Operativos De Estructura Monoltica
Las caractersticas fundamentales de este tipo de estructura son:
La construccin del programa final se realiza a base de mdulos compilados separadamente, que se unen a travs del ligador.
Poseen una buena definicin de parmetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento entre los
mdulos.
25
Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria,
disco, entre otros, lo que puede llevar a serios problemas de seguridad.
Generalmente estn hechos a la medida, por lo que son eficientes y rpidos en su ejecucin y gestin, pero, por la misma razn, carecen de la
flexibilidad necesaria para soportar diferentes ambientes de trabajo o
tipos de aplicaciones.
Un ejemplo bien conocido de este tipo de sistema operativo es el de MS-DOS,
que se dise sin pensar ni siquiera remotamente en la popularidad que
alcanzara y en las capacidades del hardware en el que llegara a ejecutarse.
Comenz como un sistema pequeo y sobrepas ampliamente el campo inicial
de su aplicacin, al punto que al momento de su eliminacin, un fuerte
movimiento de resistencia al cambio.
La primera versin de Unix posea tambin una estructura de este tipo, con dos
partes separadas: el ncleo y los programas del sistema.
Estos sistemas, normalmente, tienen un diseo de estructura modular - a nivel
de su programacin interna -, sin embargo para grandes sistemas operativos, de
cientos de miles o de millones de lneas de cdigo, la modularidad solamente no
es suficiente y se ha ido imponiendo la utilizacin de conceptos tales como los
de niveles jerrquicos y abstraccin de la informacin.
9.1.2 ESTRUCTURA JERRQUICA, POR CAPAS O POR
ANILLOS.
A medida que fueron creciendo las necesidades de los usuarios y se
perfeccionaron los sistemas, se hizo necesaria una mayor organizacin del
26
software, del sistema operativo, donde una parte del sistema contena
subpartes, todo organizado en forma de niveles [SIGA06].
As, se dividi el sistema operativo en pequeas partes, de tal forma que cada
una de ellas estuviera perfectamente definida y con un claro interfase con el
resto de elementos.
La estructura jerrquica de un sistema operativo moderno diferencia sus
funciones de acuerdo a su complejidad, sus caractersticas en el tiempo y su
nivel de abstraccin. En este caso se puede ver el sistema como una serie de
niveles. Cada uno implementa un subconjunto de las funciones requeridas por el
sistema operativo y a su vez dependen del nivel inmediato inferior para realizar
funciones ms elementales y ocultar sus detalles a los niveles superiores a los
que proporciona un servicio. Los niveles se tienen que definir de forma que los
cambios que se hagan en un nivel no supongan modificaciones en los otros.
Se constituy una estructura jerrquica o de niveles en los sistemas operativos,
el primero de los cuales fue denominado THE (Technische Hogeschool,
Eindhoven), de Dijkstra, que se utiliz con fines didcticos. A grandes rasgos, la
estructura jerrquica de este sistema operativo, se puede apreciar en la
siguiente ilustracin.
Ilustracin 5: Estructura Por Niveles Del Sistema Operativo THE
Estos sistemas pueden ser concebidos tambin como si fueran sistemas Multi
capas. En tal sentido, sistemas operativos legendarios tales como Multics y Unix,
27
as como el MS-Windows caen en esa categora [TANE08], y de hecho es la estructura que fundamenta a prcticamente la mayora de los sistema operativo
modernos.
Una forma alterna de visualizar a stos sistemas, bajo este enfoque, es la
denominada de anillos concntricos o "rings", tal como se puede apreciar en la
siguiente ilustracin.
Ilustracin 6: Estructura Por Anillos De Los Sistemas Operativos
Bajo el sistema de anillos, cada uno de ellos tiene una apertura, conocida como
puerta o trampa (trap), por donde pueden entrar las llamadas de las capas
inferiores. De esta forma, las zonas ms internas del sistema operativo o ncleo
del sistema estarn ms protegidas de accesos indeseados desde las capas
ms externas. Las capas ms internas sern, por tanto, ms privilegiadas que
las externas
La mayor dificultad en el diseo de estas estructuras es definir los niveles, ya
que cada nivel slo puede utilizar los servicios del nivel inferior.
28
Este tipo de estructuracin en los sistemas operativos guarda una enorme
similitud con la estructuracin por capas que sigue el modelo OSI, previamente
estudiado en este curso.
9.1.3 ESTRUCTURA MICRO-KERNEL.
Es el tipo ms reciente de sistemas operativos - tambin es el denominado
Cliente-Servidor -, que puede ser ejecutado en la mayora de las computadoras,
ya sean grandes o pequeas [SIGA06].
Adicionalmente, este tipo de sistema operativo sirve para toda clase de
aplicaciones por tanto, es de propsito general y cumple con las mismas
actividades que los sistemas operativos convencionales.
Goza de una estructura muy simple: el ncleo del sistema operativo se debe
estructurar de manera tal que se le eliminan todos los componentes no
esenciales para su funcionamiento interno; mientras que todos los componentes
eliminados del Kernel, se implementan como aplicaciones del sistema de nivel
superior o de nivel del usuario. El resultado es un Kernel significativamente ms
pequeo.
Siguiendo el enfoque ha planteado, todas las aplicaciones que se ejecutan en el
sistema podrn desempear papeles tanto de cliente como de servidores; en
tanto que el ncleo tiene como nicas misiones el establecer la comunicacin
entre los clientes y los servidores, y gestionar a un nivel muy bsico a los
procesos y a la memoria del sistema. Para comunicarse, los mdulos deben
utilizar una tcnica conocida como paso de mensajes, que a nivel de
programacin, resulta un poco difcil de implementar para los programadores
con poca experiencia.
29
Por ejemplo, un programa de aplicacin normal es un cliente que llama al
servidor correspondiente para acceder a un archivo o realizar una operacin de
entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede
actuar como servidor para otro.
Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el
sistema final, ya que el ncleo provee solamente funciones muy bsicas de
memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer
la mayora de los servicios que el usuario final o programador puede usar.
Adicionalmente, esta estructura ofrece la facilidad de ampliacin para el sistema
operativo; ya que todos los servicios nuevos se agregan como aplicaciones ya
sea a nivel del usuario por el sistema, y en consecuencia, son muy raras las
ocasiones en las que se requiere modificar al ncleo del sistema operativo.
Este diseo, tambin ofrece facilidades al momento de transportar al sistema
operativo de una plataforma de hardware a otra; asimismo, ofrece un mayor
nivel de seguridad y fiabilidad en su funcionamiento, ya que si un servicio falla, el
resto del sistema operativo no se ve comprometido.
Estos servidores deben tener mecanismos de seguridad y proteccin que, a su
vez, sern filtrados por el ncleo que controla el hardware. Actualmente, la
mayora de los sistemas operativos modernos tanto Microsoft o como Unix
compatibles se estructuran contemplando en su diseo este paradigma.
9.1.4 ESTRUCTURA MODULAR.
Quiz la mejor metodologa actual para disear sistemas operativos es la que
usada tcnicas de programacin orientada a objetos para crear un Kernel
modular. En este caso, el Kernel dispone de un conjunto de componentes
30
fundamentales y enlaza dinmicamente a los servicios adicionales, bien durante
el arranque del sistema o en tiempo de ejecucin.
Tal estrategia utiliza mdulos que se cargan dinmicamente y resulta habitual
encontrarlos en las implementaciones modernas del Unix, tales como Solaris,
Linux, y Mac OS, as como en MS- Windows.
Este tipo de diseo permite al Kernel proporcionar servicios bsicos, al mismo
tiempo que tambin permite implementar ciertas caractersticas de forma
dinmica. Por ejemplo, se puede aadir al Kernel controladores de bus y de
dispositivos para hardware especfico y puede agregarse como mdulos
cargables el soporte para diferentes sistemas de archivos.
El resultado global, es similar a un sistema estructurado por niveles o anillos, en
el sentido que cada seccin del Kernel tiene interfaces bien definidas y
protegidas, pero es ms flexible que el sistema de niveles porque cualquier
mdulo puede llamar a cualquier otro mdulo.
Adems, el mtodo es similar a la utilizacin de micro Kernel, ya que mdulo
principal slo dispone de las funciones esenciales y de los conocimientos sobre
cmo cargar y comunicarse con los otros mdulos; sin embargo, en ms
eficiente que micro Kernel, ya que los mdulos no necesitan invocar un
mecanismo de paso de mensaje para comunicarse.
9.2 POR LOS SERVICIOS QUE OFRECE.
Esta clasificacin es la ms comnmente usada y conocida desde el punto de
vista del usuario final; se puede comprender fcilmente con la ilustracin que se
muestra a continuacin [ARCA02].
31
Ilustracin 7: Taxonoma De Los Sistemas Operativos Segn Los Servicios Ofrecidos
9.2.1 POR EL NMERO DE PROCESOS.
De acuerdo a la cantidad de procesadores que es capaz de administrar el
sistema operativo, ellos se clasifican como:
9.2.1.1 UNIPROCESO.
Un sistema operativo uniproceso es aqul que es capaz de manejar solamente
un procesador de la computadora, de manera que si la computadora tuviese
ms de uno le sera intil. El ejemplo ms tpico de este tipo de sistemas es el
DOS y MacOS.
32
9.2.1.2 MULTIPROCESO.
Un sistema operativo multiproceso se refiere al nmero de procesadores del
sistema, que es ms de uno y ste es capaz de usarlos todos para distribuir su
carga de trabajo.
Generalmente estos sistemas trabajan de dos formas: simtrica o
asimtricamente.
Cuando se trabaja de manera asimtrica, el sistema operativo selecciona a uno
de los procesadores el cual jugar el papel de procesador maestro y servir
como pivote para distribuir la carga a los dems procesadores, que reciben el
nombre de esclavos.
Por otro lado, cuando se trabaja de manera simtrica, los procesos o partes de
ellos (hilos o procesos ligeros3) son enviados indistintamente a cualquiera de los
procesadores disponibles, teniendo, tericamente, una mejor distribucin y
equilibrio en la carga de trabajo bajo este esquema.
Un aspecto importante a considerar en estos sistemas es la forma de crear
aplicaciones para aprovechar los varios procesadores.
As, existen aplicaciones que fueron hechas para correr en sistemas
monoproceso que no toman ninguna ventaja a menos que el sistema operativo o
3 Se dice que un hilo, proceso ligero o thread es la parte activa en memoria
y corriendo de un proceso, lo cual puede consistir de un rea de memoria,
un conjunto de registros con valores especficos, la pila y otros valores de
contexto.
33
el compilador detecte secciones de cdigo paralelizable, los cuales son
ejecutados al mismo tiempo en procesadores diferentes.
Por otro lado, el programador puede modificar sus algoritmos y aprovechar por
s mismo esta facilidad, pero esta ltima opcin las ms de las veces es costosa
en horas hombre y muy tediosa, obligando al programador a ocupar tanto o ms
tiempo a la paralelizacin que a elaborar el algoritmo inicial.
9.2.2 POR EL NMERO DE USUARIOS.
De acuerdo al nmero de los usuarios que soporta un sistema operativo, ellos se
clasifican como:
9.2.2.1 MONOUSUARIOS.
Los sistemas operativos monousuarios son aqullos que soportan a un usuario a
la vez, sin importar el nmero de procesadores que tenga la computadora o el
nmero de procesos o tareas que el usuario pueda ejecutar en un mismo
instante de tiempo. Las computadoras personales tpicamente se han clasificado
en este rengln.
9.2.2.2 MULTIUSUARIOS.
Los sistemas operativos multiusuarios son capaces de dar servicio a ms de un
usuario a la vez, ya sea por medio de varias terminales conectadas a la
computadora o por medio de sesiones remotas en una red de comunicaciones.
No importa el nmero de procesadores en la mquina ni el nmero de procesos
que cada usuario puede ejecutar simultneamente.
34
9.2.3 POR EL NMERO DE TAREAS.
De acuerdo a la cantidad de tareas que se pueden realizar la vez por usuario,
los sistemas operativos se clasifican como:
9.2.3.1 MONOTAREAS.
Los sistemas monotarea son aquellos que slo permiten una tarea a la vez por
usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual
se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar
haciendo solo una tarea a la vez.
9.2.3.2 MULTITAREAS.
Un sistema operativo multitarea es aqul que le permite al usuario estar
realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el
cdigo fuente de un programa durante su depuracin mientras compila otro
programa, a la vez que est recibiendo correo electrnico en un proceso en
background.
Es comn encontrar en ellos interfaces grficas orientadas al uso de mens y el
ratn, lo cual permite un rpido intercambio entre las tareas para el usuario,
mejorando su productividad. Son la norma dentro de los sistemas operativos
modernos.
35
9.2.4 DE ACUERDO A LA FORMA EN QUE OFRECEN SUS
SERVICIOS.
Esta clasificacin tambin se refiere a una visin externa, que en este caso se
refiere a la del usuario, el cmo emplea los servicios.
Bajo esta clasificacin se pueden detectar dos tipos principales: sistemas
operativos de red y sistemas operativos distribuidos.
9.2.4.1 SISTEMAS OPERATIVOS DE RED.
Son el eje de este documento, y en consecuencia, su anlisis ser profundizado
posteriormente.
Los sistemas operativos de red se definen como aquellos que tiene la capacidad
de interactuar con sistemas operativos en otras computadoras a travs de un
medio de transmisin con el objeto de intercambiar informacin, transferir
archivos, ejecutar comandos remotos y un sin fin de otras actividades.
El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un
conjunto de comandos o llamadas al sistema para ejecutar estas operaciones,
adems de la ubicacin de los recursos que desee accesar.
9.2.4.2 SISTEMAS OPERATIVOS DISTRIBUIDOS.
En los sistemas operativos distribuidos se abarcan los servicios de los de red,
logrando integrar recursos (impresoras, unidades de respaldo, memoria,
procesos, unidades centrales de proceso) en una sola mquina virtual que el
usuario utiliza en forma transparente.
36
Es decir, ahora el usuario ya no necesita saber la ubicacin de los recursos, sino
que los conoce por nombre y simplemente los usa como si todos ellos fuesen
locales a su lugar de trabajo habitual.
Todo lo anterior es el marco terico de lo que se deseara tener como sistema
operativo distribuido, pero en la realidad no se ha conseguido crear uno del todo,
por la complejidad que suponen [TANE08]:
Distribuir los procesos en las varias unidades de procesamiento.
Reintegrar sub-resultados.
Resolver los problemas de concurrencia y paralelismo subyacentes.
Recuperarse de fallas de algunos recursos distribuidos.
Consolidar la proteccin y seguridad entre los diferentes componentes del sistema y los usuarios.
Los avances tecnolgicos en las redes de rea local y la creacin de
microprocesadores de 32 y 64 bits lograrn que computadoras ms o menos
baratas tengan el suficiente poder, en forma autnoma, para desafiar en cierto
grado a los mainframes.
Al mismo tiempo, les dar la posibilidad de intercomunicarlas, surgiendo la
oportunidad de dividir procesos muy pesados de clculo, en unidades ms
pequeas y distribuirlas entre varios microprocesadores, para luego reunir los
sub-resultados, creando as una mquina virtual en la red que exceda en poder
a un mainframe.
37
El sistema integrador de los microprocesadores que har ver a las varias
memorias, procesadores, y todos los dems recursos como una sola entidad en
forma transparente se le llama sistema operativo distribuido [SIGA06].
Las razones para crear o adoptar sistemas distribuidos se dan por dos razones
principales:
Por necesidad: debido a que los problemas a resolver son inherentemente distribuidos.
Porque se desea tener ms confiabilidad y disponibilidad de recursos.
En el primer caso se tiene, por ejemplo, el control de los cajeros automticos en
diferentes ubicaciones geogrficas de una nacin grande, tal como la China
Continental, por ejemplo. Ah no es posible ni eficiente mantener un control
centralizado, es ms, no existe capacidad de cmputo y de entrada/salida para
dar servicio a los millones de operaciones por minuto.
En el segundo caso, supngase que se tienen en una gran empresa varios
grupos de trabajo, cada uno necesita almacenar grandes cantidades de
informacin en disco duro con una alta confiabilidad y disponibilidad.
La solucin puede ser que para cada grupo de trabajo se asigne una particin de
disco duro en servidores diferentes, de manera que si uno de los servidores
falla, no se deje dar el servicio a todos, sino slo a unos cuantos y, ms an, se
podra tener un sistema con discos en espejo (mirror) a travs de la red, de
manera que si un servidor se cae, el servidor en espejo contina trabajando y el
usuario ni cuenta se da de estas fallas, es decir, obtiene acceso a recursos en
forma transparente y con mayor confiabilidad.
38
10. CONCLUSIONES.
Al concluir este apunte, se pueden plantear las conclusiones que se exponen a
continuacin:
El sistema operativo es un programa muy especial que se encarga de administrar los recurso de hardware y sobre el sistema y ofrecer al
usuario un mecanismo de comunicacin con el hardware del computador.
Los sistemas operativos han evolucionado paralelamente con el desarrollo del hardware de la computadora.
Los atributos esenciales de todo sistema operativo son: comodidad en su uso, eficiencia y capacidad de evolucin.
Estructuralmente todo sistema operativo est compuesto por tres componentes bsicos: el ncleo o Kernel, el interfaz de programacin o
API y por el intrprete de comandos o Shell. Desarrollos recientes no
estandarizados establecen la inclusin de una nueva capa de abstraccin
de hardware (HAL).
Los sistemas operativos pueden ser clasificados de mltiples maneras tales como: por su estructura, de acuerdo a los servicios que ofrecen, as
como de acuerdo a la forma en que ofrecen sus servicios.
11. CONSIGNAS DE APRENDIZAJE Y EVALUACIN.
Luego de haber ledo y analizado el documento, en forma independiente,
titulado:
SISTEMAS OPERATIVOS: COMPONENTES ESTRUCTURALES Y TAXONOMAS
39
Y de haber profundizado con el facilitador y sus compaeros, se espera que est
en capacidad de realizar las siguientes tareas de evaluacin:
11.1 EVALUACIN FORMATIVA.
DISCUTIR la historia, el concepto, las funciones e importancia de los sistemas operativos.
ESTABLECER los componentes fundamentales de todo sistema operativo.
DEBATIR las clasificaciones que organizan a los sistemas operativos.
11.2 EVALUACIN SUMATIVA.
1. Realizar una SNTESIS del contenido.
2. Extraer las IDEAS PRINCIPALES del contenido.
3. Plasmar la sntesis y las ideas principales del contenido, en no ms de
(10) pginas.
4. Prepararse para la prueba parcial correspondiente.
12. REFERENCIAS BIBLIOGRFICAS.
[ARCA02] ARANDA ALAMANSA, Joaqun; CANTO DAZ, Mara Antonia; Y
Otros. Sistemas Operativos: Teora Y Problemas. Sanz y Torres, 2002.
40
[CAAN01] CARRETERO PREZ, Jess; ANASAGASTI, Pedro de Miguel;
Y Otros. Sistemas Operativos: Una Visin Aplicada. Mc Graw-Hill, 2001.
[CERU03] CERUZZI, Paul E. A History of Modern Computing. Second Edition. MIT Press, EUA, 2003.
[CODO01] COULOURIS, George; DOLLIMORE, Jean; KINDBERG, Tim. Distributed Systems: Concepts and Design. China Machine Press,
Republic Popular Of China. 2001.
[HEPA07] HENNESSY, John; PATTERSON, David. Computer Arquitecture: A Quantitative Approach. Four Edition, Elsevier, EUA, 2007.
[SIGA06] SILBERSHATZ, Abraham; GALVIN, Peter Baer; y Otros. Fundamentos De Sistemas Operativos. Sptima Edicin, McGraw-
Hill, Espaa, 2006.
[TANE00] TANENBAUM, Andrew S. Organizacin De Computadoras: Un Enfoque Estructurado. Cuarta Edicin, Pearson, Mxico, 2000.
[TANE08] TANENBAUM, Andrew S. Modern Operating Systems. Third Edition, Pearson, EUA, 2008.
02 Certificaciones.pdfCDIGO DE ASIGNATURA: 17431 CRDITOS: 4 SEMESTRE: IHORAS SEMESTRALES: 96HORAS DE TEORA: 3HORAS DE PRCTICA: 3Profesor Regular TitularJUSTIFICACINDESCRIPCINOBJETIVOS GENERALESPROGRAMACIN ANALTICAREFERENCIAS BIBLIOGRFICAS
Tareas, Demostraciones Y Otras Asignaciones