Download Tema 6 - Sistemas Operativos

Document related concepts

Núcleo (informática) wikipedia , lookup

Sistema operativo wikipedia , lookup

Arquitectura de Windows NT wikipedia , lookup

Windows NT wikipedia , lookup

Proceso de arranque en Linux wikipedia , lookup

Transcript
TEMA 6
Sistemas Operativos
© Á lvarez, S., Bravo, S.,
Departamento de Informática y autom ática
Universidad de Salamanca
Introducción
n Un sistema informático esta formado por el hardware (parte material) y
software (parte inmaterial).
n Para que el hardware pueda realizar su trabajo se necesita tener un
conjunto de normas y órdenes para coordinar todos los procesos que se
van realizar (software) con el cual se manejan todos los recursos del
sistema informático
n El software se puede dividir en dos grandes grupos:
é Software de sistema: compuesto por programas imprescindibles para el
funcionamiento del hardware y otros destinados a facilitar el us o del ordenador y
sus recursos
é Software de aplicación: compuesto por programas destinados al desarrollo de
cualquier trabajo controlado por el usuario.
n El sistema operativo es el elemento más importante del software de
sistema es un conjunto de programas y funciones que controlan el
funcionamiento del hardware y sus recursos (procesador, memoria
interna, dispositivos de entrada/salida e información) de una forma
sencilla y transparente para el usuario.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-2-
Definición de Sistema Operativo
n Un sistema operativo es un programa (o conjunto de
programas) de control que tiene por objeto facilitar el uso
de la computadora y conseguir que ésta se utilice
eficientemente
n Es un programa de control, ya que se encarga de gestionar
y asignar los recursos hardware que requieren los
programas.
n Los recursos son: el procesador (CPU), la memoria, los
dispositivos o periféricos de entrada/salida.
n Tiene como función de asignar los recursos a cada
programa, el sistema operativo se encarga de
contabilizarlos y de la seguridad (de que un usuario no
pueda acceder sin autorización a la información de otro, por
ejemplo).
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-3-
Eficiencia
n El sistema operativo también hace que la computadora se
utilice de forma eficiente.
n Los programas tradicionalmente se ejecutan
secuencialmente (hasta que no concluye la ejecución de
una instrucción no se ejecuta la siguiente).
n El sistema operativo se encargará de gestionar y asignar
recursos a los diferentes procesos que se tengan
ejecutando para optimizar el rendimiento.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-4-
Esquema general de un SO.
n Un sistema operativo, en general, está compuesto por un
conjunto de programas que, según la función que realizan,
se pueden clasificar como se indica en el siguiente
esquema:
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-5-
Esquema general de un SO
n Un sistema operativo ha de encargarse de las siguientes
funciones:
é Asignación de CPU: planificación temporal de las diversas
actividades.
é Control de recursos: asignación de recursos de forma
racional como por ejemplo la división de la memoria del
ordenador entre los programas, o el control de las colas de
E/S.
é Control de E/S: gestión de la información procedente de los
periféricos o destinada a ellos.
é Control de los errores y protección: información y solución
en la medida de lo posible de las situaciones anómalas.
é Interfaz con el usuario: facilitar el uso en la mayor medida
posible.
é Facilidades contables: cálculo de costes de uso de CPU.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-6-
Programas de control
n Los programas de control constituyen la parte del
sistema operativo dedicada a coordinar el funcionamiento
de todos los recursos y elementos de la computadora, es
decir, el procesador, la memoria, las operaciones de
entrada/salida, la información y, en definitiva, todo el
entorno del sistema incluyendo los periféricos
n En general, un sistema operativo tiene englobados estos
programas en un conjunto denominado núcleo (kernel).
n El núcleo descansa directamente sobre el hardware y
proporciona una serie de servicios a las capas superiores
del sistema.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-7-
Programas de control
é El núcleo se encarga de los siguientes grupos de funciones:
Ø Gestión del procesador
Ø Gestión de memoria
Ø Gestión de entrada/salida
Ø Gestión de datos
Ø Gestión del sistema
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-8-
Gestión de Memoria
n El módulo de gestión de memoria es el encargado de
asignar ciertas porciones de la memoria principal a los
diferentes programas, mientras el resto de programas y
datos se mantienen en los dispositivos de almacenamiento
masivo.
n La forma mas común de gestión de memoria es crear una
memoria virtual utilizando los dispositivos de
almacenamiento masivo.
n La memoria se puede dividir de diferentes modos:
é Por páginas: bloques de bytes de igual tamaño para todos los
procesos y tareas.
é Por segmentos: bloques de bytes con distinto tamaño según
el proceso.
é Por segmentos paginados: segmentos de tamaño distinto
que se dividen a su vez en páginas de distinto tamaño.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-9-
Gestión de Memoria
n Se dividen en dos grandes grupos:
é Gestión de memoria central:
Ø multitud de métodos de asignación y control de la memoria central o interna
según se trate de un sistema operativo monoprogramado o
multiprogramado.
Ø asignan los espacios que deben ocupar los programas y datos estableciendo
zonas de seguridad
Ø en SO con memoria virtual donde se procesan programas que se van
cargando parcialmente en la memoria, gestionan la paginación o
segmentación del programa para que el proceso no se interrumpa en ningún
momento.
é Gestión de memoria secundaria:
Ø hacer ver al usuario el tratamiento de la información almacenada en la
memoria externa, desde el punto de vista lógico ocultándole la realidad
física.
Ø un sistema puede mantener en un mismo instante un gran número de
usuarios y procesos que pueden estar solicitando y manejando
continuamente archivos en memoria externa, en ocasiones hasta
comparti éndolos nos deben asegurar el correcto funcionamiento del
almacenamiento secundario.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-10-
Gestión de la E/S
n El control de las operaciones de E/S es otra de las misiones
de un SO para facilitar el uso de distintos dispositivos
externos que forman parte del sistema informático.
n Gestionan las operaciones que un proceso realice sobre un
dispositivo externo, ocultándole sus peculiaridades.
n Los problemas derivados de las diferentes velocidades de
funcionamiento de los dispositivos son tratados por el
módulo de control de E/S presentándolo como una cuestión
independiente del dispositivo.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-11-
Gestión de Datos
n Los programas del grupo de gestión de datos son los
que controlan y coordinan todas aquellas operaciones
relativas al movimiento de datos e informaciones en la
computadora, como pueden ser las de transferencia,
tratamiento o manejo de archivos de datos, etc.
n Tienen las siguientes funciones:
é Control de periféricos
é Control de transferencia de la información
é Tratamiento de cada bloque de información
é Apertura y cierre de archivos
é Acceso a los archivos
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-12-
Gestión del Sistema
n Este grupo de programas es el verdadero motor del sistema operativo ya
que se encarga de la coordinación y supervisión del funcionamiento
del resto de programas, por ello se le denomina supervisor.
n Sus cometidos fundamentales son:
é Protección de memoria:
Ø (multiprogramación) ejecutándose solapada o concurrentemente, es necesario fijar unas
fronteras de separación de memoria
é Errores en la memoria:
Ø cuando mediante control de paridad se detecta que cierta información de la memoria no
es correcta (debido a algún defecto f ísico del hardware o a alguna transmisión errónea)
se activa este grupo de programas para averiguar dónde se produjo el error y reenviar
nuevamente el dato, subsanando el error sobre la marcha.
é Errores de programa:
Ø cuando la unidad de control, al analizar las dos partes básicas de una instrucción (código
de operación y operandos), no reconoce la operación que debe realizar, la ubicación
donde se encuentran los datos o sencillamente se trata de una operación errónea, se
debe diagnosticar un error, cediendo el control a este grupo de programas que se
encargaran de cancelar el programa del usuario y enviar los correspondientes mensajes
para informarle sobre las características del error encontrado.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-13-
Programas de proceso
n Están enfocados preferentemente para ayudar al
programador en la puesta a punto de programas de
usuario, llegando incluso a proporcionarle pseudo
programas estándares semiescritos, que completados con
unas pocas instrucciones más quedan perfectamente listos
para su ejecución.
n Existen dos tipos de programas de proceso:
é programas traductores
é programas de servicio.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-14-
Programas de proceso :
traductores
n Programas traductores
é Un traductor es cualquier programa que toma como
entrada un texto escrito en un lenguaje, llamado fuente y
da como salida otro texto en un lenguaje, denominado objeto.
é Existen varios tipos de traductores:
Ø Ensambladores
Ø Compiladores
Ø Intérpretes.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-15-
Programas de proceso :
traductores
é Programas Ensambladores
Ø Son los encargados de llevar a cabo el proceso denominado de
ensamblaje o ensamblado. Este proceso consiste en generar
un determinado lenguaje máquina a partir de un lenguaje
ensamblador.
Ø Los primeros programas ensambladores producían sólo una
instrucción en lenguaje de máquina por cada instrucción del
programa fuente. Una sola macroinstrucción podía producir varias
líneas de código en lenguaje de máquina
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-16-
Programas de proceso :
traductores
é Compiladores
Ø El programa compilador traduce las instrucciones en un lenguaje
de alto nivel a instrucciones que la computadora pueda interpretar
y ejecutar (lenguaje máquina).
Ø Cada lenguaje de programación requiere un compilador (ya que
cada lenguaje tiene sus propias instrucciones)
Ø El compilador traduce todo el programa antes de ejecutarlo
Ø Una vez traducido en código fuente, si no ha habido errores se
crea el programa objeto que ya estará listo para montarlo y crear
el programa ejecutable
Ø La traducción del programa fuente, no suele ser directa, sino que
aparece un paso intermedio situado al nivel del lenguaje
ensamblador.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-17-
Programas de proceso :
traductores
é Componentes de un compilador
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-18-
Programas de proceso :
traductores
n Intérpretes
é Ciertos lenguajes de alto nivel no se prestan a la
traducción del programa fuente al programa objeto sino
a la interpretación de cada una de las instrucciones que
componen el programa fuente y su inmediata ejecución.
é Este tipo de lenguajes necesita la utilización de
programas intérpretes. El programa siempre
permanece en su forma original (programa fuente) y se
traduce cuando está en la fase de ejecución instrucción
por instrucción
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-19-
Programas de proceso :
traductores
é Ventajas e inconvenientes de los compiladores frente a
los intérpretes:
Ø Los compiladores compilan una vez, se ejecuta n-veces el
programa.
Ø En bucles, la compilación genera código equivalente al bucle pero
un interprete se traduce tantas veces una línea como veces se
repite el bucle.
Ø El compilador tiene una visión global del programa, por lo que la
información de mensajes de errores es más detallada.
Ø Un intérprete necesita menos memoria que un compilador y
permite una mayor interactividad con el código en tiempo de
desarrollo.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-20-
SO de mayor difusión
n Microsoft Windows
é Nació simplemente como una aplicación que necesitaba del
DOS pero el tiempo y los usuarios demandaron que se
convirtiera en un sistema operativo completo
é Es el más utilizado hoy en día en todo el mundo, que implica
que sea o no el mejor
é Fue diseñado para facilitar la comunicación entre el usuario y
el ordenador. (convierte la pantalla en un escritorio).
é Tecnología plug and play que simplifica la tarea de configurar
los dispositivos periféricos que se conecten al ordenador
é Permite al usuario etiquetar sus archivos como desee
é Facilita la tarea del intercambio de datos entre programas
diferentes
é Está especialmente diseñado para que el usuario pueda
trabajar con las tecnologías multimedia.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-21-
SO de mayor difusión
é Como características técnicas se pueden destacar:
Ø Multitarea
Ø interfaz de usuario muy intuitiva
Ø estabilidad y seguridad sólo relativas
é Surgió una demanda que obligó a Microsoft al desarrollo de un
SO que aprovechara la interfaz Windows, pero orientado al
mundo empresarial.(Windows NT)
é Windows NT es un sistema operativo multiusuario y
proyectado para actuar en servidores de archivos, impresoras
y otros sistemas, a los que se accede a través de redes de
área local (LAN) o Internet. Incluye funciones de seguridad
para grupos de usuario, autentificación de usuarios y control
de acceso a los recursos compartidos de la red.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-22-
SO de mayor difusión
é Windows 2000
Ø está orientado a estaciones de trabajo en red.
Ø puede utilizarse con diversos procesadores en un sistema operativo monousuario y
multiprogramación.
Ø mucha seguridad (identificación y contabilidad de usuarios)
Ø es tolerante a. fallos
Ø Está disponible en cuatro versiones: Professional, Server, Advanced Server y Detacenter
Server. Siendo la primera la más orientada a usuarios y la última la más enfocada a
entornos de servidores.
é Windows Server 2003
Ø es de los últimos sistemas operativos basados en la plataforma .NET también dedicado a
entornos de servidores.
é Windows XP
Ø es el sistema operativo enfocado a los usuarios por excelencia en la actualidad.
Ø Se distribuye en cuatro versiones diferentes: XP Home Edition (enfocada a los usuarios
domésticos), XP Profesional (enfocada a usuarios más avanzados) y dos versiones
especiales: XP Media Center Edition (especializada en tecnologías multimedia) y XP Tablet
PC Edition (versión exclusiva para la nueva generación de dispositivos Tablet PC).
é Windows CE
Ø es una versión simplificada de las otras versiones de Windows NT ideada para equipos
inform áticos miniaturizados como PDA’s o televisión conectables a Internet, etc.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-23-
SO de mayor difusión
n UNIX
é UNIX nació en 1969 gracias a Ken Thompson, de los laboratorios Bell de AT&T y
fue originariamente escrito en ensamblador, llamándose en sus comienzos
UNICS.
é Más tarde, en 1973, Thompson y Ritchie lo tradujeron a lenguaje C. Su finalidad
era buscar un entorno informático donde ellos mismos pudieran realizar
c ómodamente la investigació n en cuanto a programación
é En cuanto a las derivaciones de UNIX en este punto se tendrían dos ramas, una
liderada por la investigació n en la Universidad de Berkeley y que comienza con la
versión 7 y evoluciona a una versión conocida como 4.2 BSD, y un segundo
ramal de investigación en AT&T, que culmina con la famosa System V.
é De forma paralela al UNIX “oficial”, desde mediados de los ochenta, Richard
Stallman,se inicia en lo que más tarde se denominó software libre, y cre ó un
sistema similar para cederlo gratuitamente. Este es el conocido GNU (GNU´s Not
Unix).
é otro investigador, el finlandés Linus Torvalds , empezó a escribir su propio
sistema operativo compatible con UNIX. Partiendo del GNU de libre distribución,
desarrolló un núcleo (kernel), d ándole el nombre de Linux al producto
resultante.
é Hoy en d ía se utilizan las versiones estandarizadas tanto de UNIX como de
Linux,las cuales evolucionan a pasos agigantados
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-24-
SO de mayor difusión
é UNIX es uno de los sistemas operativos más ampliamente usados en
computadoras que varían desde las personales hasta las macrocoputadoras ,
pasando por las estaciones de trabajo.
é Existen versiones monoprocesador y multiprocesador.
é Una de las características más relevantes de este sistema operativo es que en él
todo se maneja como cadena de bytes : los dispositivos periféricos, los archivos o
los comandos pueden verse como secuencias de bytes .
é En cuanto al sistema de archivos, desde el punto de vista del us uario, cuenta con
é una organización jerárquica o en forma de árbol invertido que parte de una raíz
conocida como “/”, y usa el nombrado redireccionamiento para establecer varios
niveles de archivos
é Las labores de sistema operativo en cuanto a gestión de recursos hardware las
realiza el núcleo de UNIX (kernel) en el que pueden distinguirse dos partes: el
núcleo dependiente y el independiente
é El núcleo dependiente se encarga de las interrupciones y parte del manejo de la
memoria mientras que el núcleo independiente incluye el manejo de las llamadas
del sistema, la planificació n de procesos, el entubamiento, el manejo de discos y
del sistema de archivos
é El modelo de gestión de procesos que utiliza se basa en prioridad
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-25-
Windows vs UNIX
n En materia de seguridad, estos sistemas difieren en varios
aspectos como la autentificación, aunque de cara al usuario
no se notan especiales diferencias en este aspecto.
n Windows NT está un poco más extendido en la empresa
aunque últimamente grandes empresas apuestan por UNIX,
como la Casa Blanca, Google, Yahoo o Sony en Japón.
n En general, UNIX cuenta con grandes ventajas frente a
Windows para uso aunque requiere más conocimientos de
informática y algunos dispositivos de última generación no
están soportados
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-26-
Conclusiones
n El objetivo fundamental de los sistemas operativos es el de
gestionar y administrar de forma eficiente los recursos
hardware de los que dispone el sistema informático.
n Como tareas principales de un sistema operativo se pueden
considerar la ejecución concurrente de varios programas sin
que se produzcan conflictos entre ellos por el acceso a los
recursos (CPU, memoria, dispositivos de E/S) que precisen,
el reparto de de dichos recursos entre los diferentes
programas, etc.
n Otros aspectos secundarios tendrán que ver con la
apariencia y el manejo que ofrezcan, según los cuales
ciertos sistemas operativos podrán orientarse hacia un tipo
de público o hacia otro.
© Álvarez, S., Bravo, S.
Universidad de Salamanca
-27-