Download capitulo nº1 introducción 1.1 ¿qué es un sistema operativo?

Document related concepts

Sistema operativo wikipedia , lookup

Proceso de arranque en Linux wikipedia , lookup

VM (sistema operativo) wikipedia , lookup

Emulador wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Transcript
CAPITULO Nº1
INTRODUCCIÓN
1.1 ¿QUÉ ES UN SISTEMA OPERATIVO?
•
El modelo más básico de una computadora es de dos niveles: El Hardware (HW) y el software
(SF).
•
Hardware: Corresponde al nivel de lógica digital. Está constituido por compuertas lógicas,
memorias, buses, temporizadores, fuentes de poder, cables, etc.
•
Software :
•
•
Programas de Aplicación: Compiladores, editores de texto, planillas de cálculo, etc.
Programas de Sistema: Controlan la operación de una computadora.
•
Firmware: SF incorporado al HW en su construcción.
•
El sistema operativo (SO):
•
•
•
•
•
•
Programa de sistema fundamental.
Administra los recursos de una computadora (Procesadores, memoria, dispositivos de
E/S).
Proporciona al programador instrucciones de alto nivel para manejar el HW.
Porción de SF que se ejecuta en modo kernel o supervisor: Está protegido por HW de la
manipulación del usuario.
Ejecución en modo usuario: Compiladores, Editores.
Ejecución en modo supervisor: Manejador de interrupciones de disco.
•
El SO en el contexto de una máquina multinivel.
•
•
El SO se puede observar como un nivel de jerarquía dentro de una jerarquía de niveles que
modelan una computadora.
El SO es una máquina virtual que posee un set o conjunto de instrucciones cercanas a las
personas (de alto nivel) que alejan al programador de la programación del HW.
•
Nivel de sistema operativo en máquinas multinivel reales
•
Breve descripción de los niveles de máquinas actuales.
•
Nivel 0: Nivel de lógica digital.
Corresponde al HW de la máquina. Está conformado por memorias RAM, memorias
ROM, registros, unidades aritmético lógicas, unidad de control, buses de datos, buses de
direcciones, bus de control, compuertas lógicas, fuentes de poder, etc.
Bajo este nivel existe un nivel denominado nivel de dispositivo, conformado por los
elementos básicos con los cuales están construidos las compuertas lógicas, a saber, los
transistores. El funcionamiento de los transistores, o de los semiconductores en general cae
en el campo de la física de estado sólido.
•
Nivel 1: Nivel de microprogramación.
El nivel de microprogramación está conformado por una máquina virtual
denominada microprograma. El microprograma es un programa interprete de las
instrucciones de salida del nivel de máquina convencional, que generalmente se
implementa en firmware.
La función del microprograma es generar los valores lógicos (0 y 1) de las líneas de
control del HW de la máquina, que junto con un secuenciamiento adecuado ejecutan sobre
el HW las instrucciones del nivel anterior.
•
Nivel 2: Nivel de máquina convencional.
Este nivel se denomina también nivel de arquitectura del set de instrucciones.
En este nivel se definen cuestiones como el set de instrucciones de lenguaje de
máquina, el formato de las instrucciones, las formas de direccionamiento, el largo y
funcionalidad de los registros (de propósito general y específico), etc.
Los manuales de referencia de lenguaje de máquina de los fabricantes de una
computadora, tratan de la máquina virtual de nivel 2. El set de instrucciones de lenguaje de
máquina describe las instrucciones que el microprograma lleva a cabo sobre el HW.
•
Nivel 3: Nivel de sistema operativo.
El nivel de sistema operativo está conformado por un programa denominado sistema
operativo.
El nivel de sistema operativo es un nivel híbrido. La mayoría de las instrucciones de
este nivel están presente en el nivel 2, por lo que son ejecutadas directamente por el
microprograma. Además existen otras instrucciones que tiene que ver con cuestiones como
la creación, ejecución y comunicación de procesos (programa en ejecución).
Las funciones del sistema operativo son básicamente 4:
!
!
!
!
•
Administración de procesos
Sistema de archivos
Administración de memoria
Administración de los dispositivos de E/S.
Nivel 4: Nivel de lenguaje ensamblador.
Este nivel está conformado por un programa traductor denominado ensamblador.
El lenguaje ensamblador es una forma simbólica de los lenguajes subyacentes. En
general corresponde a una forma simbólica del lenguaje de máquina convencional o
lenguaje de máquina que es un lenguaje binario.
Los símbolos del lenguaje ensamblador son típicamente ADD, SUB, MUL, DIV, que
representan operaciones como sumar, restar, multiplicar y dividir.
La tarea del ensamblador en una primera instancia es traducir el lenguaje simbólico a
lenguaje de máquina.
El programa ensamblador como traductor toma el programa fuente (programa con
instrucciones en símbolos) y lo convierte a un programa objeto, que es el programa que
realmente se ejecuta.
Cuando se ejecuta el programa objeto hay tres niveles presentes: El nivel de
microprogramación, el nivel de máquina convencional y el nivel de sistema operativo.
En tiempo de ejecución hay 3 programas presentes en memoria: El programa objeto
del usuario, el sistema operativo y el microprograma.
•
Nivel 5: Nivel de lenguajes orientados a problemas.
Este nivel está constituido por programas traductores denominados compiladores.
Los lenguajes de nivel 5 son denominados de alto nivel dado que son muy cercanos a
las personas. Ejemplos de estos lenguajes son el Pascal, el Fortran, C, Cobol, entre otros.
•
Nivel 6 y superiores: Aplicaciones.
Este nivel provee de máquinas virtuales orientadas a aplicaciones específicas. Entre las
máquinas virtuales presentes en este nivel están las planillas de cálculo, procesadores de
texto, etc.
•
Funciones del sistema operativo: El SO tiene 2 funciones que no están relacionadas entre sí.
•
Visión descendente: Sistema operativo como máquina extendida.
•
Programación directa del HW (Controlador de disco flexible).
"
"
"
•
Presenta al programador una máquina extendida o máquina virtual, con un conjunto de
instrucciones de alto nivel, con lo cual se configura una abstracción sencilla de los
elementos de una computadora.
"
"
"
•
Posee 16 comandos, cada uno de los cuales se especifica cargando entre 1 y 9
bytes en un registro del dispositivo.
Comandos de lectura de datos, escritura de datos, movimiento del brazo, formateo
de pistas. Inicialización, detección, reestablecimiento, recalibración del controlador
y las unidades de disco.
Comandos básicos son READ y WRITE: requieren 13 parametros empacados en 9
bytes. Los parámetros especifican: Dirección del bloque de disco, número de
sectores por pista, modo de grabación empleado, etc.
Disco como conjunto de archivos.
Cada archivo posee un nombre que lo identifica.
Los archivos pueden abrirse, leerse, escribirse o ambos, y finalmente cerrarse.
Visión ascendente: SO como administrador de recursos.
•
•
•
Los recursos de una computadora son: Procesadores, memoria, dispositivos de E/S.
El SO asegura el correcto uso de los recursos de la computadora entre programas que
piden el acceso a estos recursos que son compartidos.
Ejemplo: Un SO de red, ordena el uso de un recurso compartido como una impresora
por los diferentes usuarios.
1.2 CRONOLOGÍA DE LOS SISTEMAS OPERATIVOS Y
LA ARQUITECTURA DE COMPUTADORAS.
1.2.1
•
Generación 0 (1642-1945): Computadoras mecánicas.
Máquina calculadora mecánica de Pascal:
Blaise Pascal(1623-1662), científico francés construye en 1642 una máquina
calculadora mecánica hecha de engranajes y accionado por una manivela. Sólo podía hacer
sumas y restas.
•
Máquina calculadora de Leibnitz:
El matemático alemán, barón Gottfried Wilhelm von Leibnitz(1646-1716), construye
una calculadora mecánica que suma, resta, divide y multiplica.
•
Máquina diferencial de Babbage:
Profesor de matemáticas en la Universidad de Cambridge, el inglés Charles
Babbage construye una máquina que suma y resta para ejecutar el algoritmo de diferencias
finitas usando polinomios. Utiliza un medio de salida perforando los resultados en un plato
de cobre.
•
Máquina analítica de Babbage:
Máquina mecánica que posee una estructura 4 componentes: El almacén (memoria), el
taller (unidad de cálculo), la sección de entrada (lectora de tarjetas perforadas) y la
sección de salida (salidas impresas y perforadas). El almacén consiste de 1000 palabras de
50 dígitos decimales, usadas para contener variables y resultados. El taller podía aceptar
operandos del almacén, realizar las 4 operaciones, y regresar el resultado al almacén.
Primera máquina de propósito general (programable), leía las instrucciones del
almacén y las ejecutaba. Algunas instrucciones le indicaban a la máquina extraer dos
números del almacén, llevarlos al taller, hacer cálculos (sumar), y regresar el resultado al
almacén. Otras instrucciones podían comprobar si un número era positivo o negativo y
tomar diferentes acciones dependiendo de dicha condición.
La máquina era programable en un lenguaje ensamblador sencillo. Ada lovelace hija del
famoso poeta británico Lord Byron fue contratada por Babagge para programar su
máquina.
•
Konrad Zuse: Estudiante de ingeniería alemán a mediados de la década de 1930 construye
máquinas calculadoras con relays.
•
John Atanasoff: En la universidad de Iowa (E.E.U.U.) construye una calculadora
sorprendentemente avanzada. Utilizaba aritmética binaria y tenía una memoria de
condensadores. Su máquina nunca operó perfectamente.
•
Horward Aiken y Mark I: Construyó la máquina analítica de Babagge con la tecnología de
relays. Mark I fue terminada en la Universidad de Hardvard en 1944. Tenía 72 palabras de
23 dígitos decimales cada uno, y un tiempo de ejecución de instrucción de 6 segundos.
•
Visión de la generación del punto de vista del SO:
•
•
En esta generación de computadoras no existe el concepto de sistema operativo.
Existe el concepto de programa. La programación se hace interviniendo el HW.
1.2.2 Primera generación (1945-1955): Tubos al vacío y
procesamiento en serie.
•
•
Comienza la era de la electrónica.
•
Computadora Colossus: Alan Turing, matemático Inglés, cooperó con el gobierno Inglés
para construir una computadora que permitiera descifrar los mensajes codificados de los
submarinos alemanes. Su línea de investigación cayó en un punto muerto pues fue
considerado secreto militar.
•
ENIAC: John Muchley y Prespert Eckert, construyeron una computadora electrónica para
calcular tablas de tiro para apuntar la artillería pesada del ejercito de E.E.U.U. Las
características del ENIAC son: 18000 tubos y 1500 relays, pesaba 30 toneladas y
consumía 140 Kwatts. Respecto de la arquitectura contenía 20 registros, cada uno capaz de
almacenar un número de 10 dígitos decimales, se programaba conectando 6000
interruptores más cables y enchufes.
•
Otras:
•
EDASC (1949): Universidad de Cambridge, Inglaterra por Maurice Wilkes.
•
JOHNIAC: Construida por Rand Corporation.
•
ILLIAC: Universidad de Illinois.
•
WEIZAC: Instituto Weizman en Israel.
Máquina de von Neumman (IAS):
John von Neumman experto en ciencias físico matemáticas, pensó que el
programa puede almacenarse en forma digital en memoria al igual que los
datos, y abandonar la estrategia de programar con interruptores y cables. También pensó
en utilizar la aritmética binaria en vez de decimal, en que cada dígito era representado
por diez bulbos, uno encendido y nueve apagados.
La máquina de von Neumman la constituyen cinco partes básicas: La memoria, la unidad
aritmética lógica, la unidad de control del programa, la entrada/salida. Memoria con 4096 palabras
de 40bits (La palabra podía contener 2 instrucciones de 20 bits o un número entero de 39 bits y su
signo). Dentro de la CPU había un registro llamado acumulador usado para instrucciones
aritméticas.
•
Visión de la generación desde el punto de vista del SO:
•
No existe concepto de sistema operativo.
•
El procesamiento es en serie. La CPU atiende a un solo proceso. Se debe terminar un
proceso para comenzar otro.
•
En caso de que el proceso espere una operación de E/S, la CPU esta ociosa.
•
Se programaba en el lenguaje de la máquina: Alambrando tableros de conmutación para
controlar las funciones de la máquina. No existen lenguajes de programación.
1.2.3 Segunda generación
sistemas operativos por lote
(1955-1965):
Transistores
y
•
El invento del transistor en 1948 en los laboratorios Bell por John Barden, Walter Brattain,
William Shockley (por el cual obtuvieron el premio nobel de física en 1956) dejó obsoletas
las computadoras a tubos.
•
TX-0: Primera máquina transistorizada, construida en el laboratorio Lincoln del MIT
(Massachuset Institute of Tecnology)
•
PDP-1: Construida por DEC (1961). Desde el punto de vista de la arquitectura contenía
4kpalabras de 18 bits, y un tiempo de ejecución de instrucción de 5 microsegundos.
Introduce un dispositivo visual (CRT) con la habilidad de trazar puntos sobre la pantalla.
•
PDP-8: Construida por DEC. Máquina de 12 bits. Incorpora un bus simple denominado
ómnibus
Un bus es un conjunto de cables en paralelo para conectar dispositivos.
Arquitectura se aparta de la máquina IAS centrado en la memoria.
•
IBM 7094: Memoria de 36k palabras de 36 bits. Tiempo de ejecución de instrucción 2
microsegundos.
•
CDC 6600: (CDC, Control Data Corporation) Velocidad de un orden de magnitud de la
7094. Dentro de la CPU tenía una máquina paralela. Poseía unidades para hacer
sumas, para multiplicar y dividir, pudiendo ejecutar 10 instrucciones al mismo tiempo.
Poseía además unidades que permitía realizar la E/S.
•
Burroughs B5000: Los diseñadores de la línea PDP, 7094 y 6600 competía por hacer más
eficiente el HW (más barato y más rápido). La B5000 fue construida para ser programada
en ALGOL 60 incluyendo características HW para facilitar la tarea del compilador.
•
Visión de la generación desde el punto de vista del SO:
•
Las computadoras transistorizadas ocupaban cuartos enteros provisto de aire
acondicionado.
•
Para ejecutar un programa o una serie de programas se seguían los siguientes pasos:
•
•
•
•
•
Escritura del programa en Fortran o en ensamblador.
Perforación de tarjetas del programa.
Introducción del compilador Fortran en el lector de tarjetas e introducción del
programa perforado.
Impresión de resultados en la impresora.
Perforardor de tarjetas, lector de tarjetas e impresora correspondían a equipos
distintos, usualmente en distintas habitaciones. Pérdida de tiempo en traslado de
cuarto en cuarto.
•
Sistema de trabajo por lotes:
•
•
•
•
•
Perforar los programas.
Lectura tarjetas perforadas y grabación de ellas en cinta magnética.
Lectura de cinta magnética de programas, ejecución del programa y grabación de
resultados en cinta magnética.
Impresión de resultados.
Para la realización de los cálculos se cargaba un programa que puede
considerarse como antecesor de un sistema operativo, que leía la cinta con
todos los programa, los ejecutaba en orden e imprimía de la misma forma los
resultados en una cinta de salida.
1.2.4 Tercera generación (1965-1980): Circuitos integrados
(LSI) y multiprogramación.
•
La invención del circuito integrado permitió poner docenas en una sola pastilla. La
consecuencia lógica fue hacer computadoras más pequeñas, más rápidas y más
baratas.
•
Serie 360 de IBM:
•
La 7094 y la 1401 eran máquinas exitosas pero incompatibles y con distinta funcionalidad.
La 7094 máquina de alta velocidad y orientada al cálculo. La 1401 procesador de E/S
(ambas se usaban extensamente en sistemas de procesamiento por lotes).
•
Características de la familia 360:
•
•
•
•
Familia de computadoras escalables con modelos compatibles en lo que se refiere al
SF.
Primeras computadoras en emular otras computadoras modelos (7094 y 1401).
Espacio de memoria direccionable 224 bytes (16 megabytes).
Futuras series (370, 4300, 3080, 3090) conservan la misma arquitectura. Se debió
abandonar la compatibilidad para pasar a espacios de direccionamiento de 232 bytes.
Modelo
Propiedades
Desempeño relativo
Tiempo de ciclo (nseg)
Memoria max (K)
Bytes accesados por ciclo
•
30
1
1000
64
1
40
3.5
625
256
2
50
10
500
256
4
PDP-11 de DEC: Registros orientados a palabras y memoria orientada al byte.
65
21
250
512
16
•
Visión de la generación desde el punto de vista del SO:
•
•
OS/360: Sistema operativo de la familia 360.
Dado los enormes requerimientos de la familia 360, el sistema operativo resultó ser igual
de enorme con una gran cantidad de líneas escritas en ensamblador llenas de errores.
•
Multiprogramación:
•
•
•
•
En el modelo 7094, cuando el trabajo en ejecución hacía una pausa para una operación
de E/S, la CPU permanecía ociosa.
La solución fue dividir la memoria en varias secciones, con un trabajo distinto en cada
partición de manera que si un trabajo espera una E/S, otro trabajo pueda usar la CPU
en operaciones de cálculo.
Tener varios trabajos en memoria necesita de HW adecuado para proteger la operación
de un trabajo de la invasión de otro.
Spooling:
•
•
•
Existen varios trabajos en memoria.
Cada vez que uno de los trabajos terminaba de ejecutarse se leía uno nuevo de la
cinta magnética y se lleva a la partición que queda vacía.
Tiempo compartido:
•
•
•
Variante de la multiprogramación.
Cada usuario tiene un terminal en línea.
La CPU puede asignarse por turno a los trabajos que requieren computo y que no
están ociosos.
1.2.5 Cuarta generación (1980 en adelante): Computadoras
personales y VLSI.
•
El nivel de integración VLSI (very large scale of integration) permitieron integrar en una
sola pastilla millones de transistores. Las computadoras son más rápidas, más pequeñas y
mucho más baratas.
•
La disminución tan drástica en el precio de las computadoras condujo al aparecimiento de
la computadora personal. Ya no solo los departamentos de cómputo de las empresas y las
universidades pueden adquirir computadoras, sino que el precio las hace accesible a las
personas.
TIPO
MIPS
MEM MB
EJEMPLO
Computadora personal
Mini (Server)
SuperMini
(Workstation)
Macro (Mainframe)
Supercomputadora
1
2
10
1
4
32
30
125
128
1024
•
IBM PS/2
PDP 11/84
SUN 4
PRECIO
($)
1K
10K
100K
APLICACIÓN
Proc. de texto
Control Tiempo Real
Servidor de Red
IBM 3090/300
Cray -2
1M
10M
Operación bancaria
Predicción Tiempo
Visión de la generación desde el punto de vista del SO:
•
Sistemas operativos de red:
•
•
•
•
•
Los usuarios conocen la existencia de múltiples máquinas.
Los usuarios pueden acceder a máquinas remotas y copiar archivos de una
máquina a otra.
Cada máquina ejecuta su propio SO local y tiene uno o varios usuarios.
Para el funcionamiento del un SO de red, cada máquina debe tener el HW
adecuado para la conexión (tarjeta de red), y tener el SF de bajo nivel adecuado
para la utilización de dicho HW (manejador de tarjeta).
Sistemas operativos distribuidos:
•
•
•
•
•
•
Concepto subyacente: Los diversos procesos son ejecutados por CPU distintas.
Presenta el mismo aspecto de un sistema monoprocesador (centralizado).
Se compone de múltiples procesadores.
Los usuarios no saben dónde se están ejecutando sus programas o donde se
almacenan sus archivos.
Los sistemas distribuidos permiten a las aplicaciones ejecutarse en varios
procesadores (partes de la aplicaciones).
Los retardos en la red implica que debe haber una correcta sincronización entre los
procesos distantes, lo que significa que los procesos deben ejecutarse en forma
incompleta para esperar los resultados de otros procesos.
1.3 Conceptos de Sistemas Operativos
•
En esta sección se introducirán algunos conceptos generales que son transversales los
sistemas operativos modernos:
•
•
•
•
1.3.1
1.3.2
1.3.3
1.3.4
Procesos.
Llamadas a sistema.
Archivos.
El interprete de comandos.
1.3.1 Procesos.
Conceptos generales:
•
Se entiende como proceso a un programa en ejecución.
•
Debido a la multiprogramación y para volver a ejecutar los procesos, es necesario guardar
información para su nueva ejecución.
•
Por cada proceso el sistema operativo mantiene estructuras de información
• Estructuras que para identificación de características del proceso.
• Estructuras para identificar recursos asignados: Archivos, memoria, puertos de
comunicaciones, etc...
•
Bloque de control de proceso BCP:
• Contiene la información básica del proceso
• Información de Identificación: pid, ppid, uid, gid.
• Estado del procesador
• Información de control del proceso: Estado, prioridad, etc...
• El sistema operativo mantiene una Tabla de Procesos con todos los BCP de cada
uno de ellos.
Información asociada al proceso:
•
La información a guardar de un proceso se divide en 3 tipos (fig6cap1):
• Estado del procesador.
• Imagen de memoria (core image).
• Tablas del sistema operativo.
•
Estado del procesador:
• Está conformado por los valores de los registros del procesador.
• Ejemplos: Registros de propósito general, PC(contador de programa), SP (stack
pointer), Registro de Estado.
• Varía a medida que se ejecutan las instrucciones.
• Cuando se detiene la ejecución del proceso para ejecutar otro el estado del
procesador se guarda en el BCP.
•
Imagen de memoria del proceso
• Corresponde a los espacios de memoria o conjunto de direcciones de memoria que
el proceso está autorizado a utilizar.
• En el espacio de memoria se almacenan: El código, los datos y la pila.
• Para almacenar esta información es posible encontrar distintos modelos de imagen
de memoria.
• Unico segmento de tamaño fijo.
• Unico segmento de tamaño variable.
• Número fijo de segmentos de tamaño variable
• Numero variable de segmentos de tamaño variable.
•
Tablas
•
•
•
•
del sistema operativo
Tabla de procesos: Compuesta por todos los BCPs
Tabla de memoria.
Tabla de entrada salida.
Tabla de archivos.
Jerarquía de procesos
•
Los procesos tienen la capacidad de crear nuevos procesos llamados procesos hijos
(existencia de procesos padres y procesos hijos), y estos últimos crear sus procesos hijos.
•
Lo anterior lleva a la existencia de una estructura de árbol de procesos (fig7cap1).
•
Llamada al sistema fork
• Crea un nuevo proceso casi igual al padre (clona al padre) (fig8cap1)
• Copia Imagen de memoria y BCP
• Elementos diferenciadores
• Identificador de proceso
• Nueva descripción de memoria (en otra zona)
• Tiempo de ejecución igual a 0
Comunicación y sincronización
•
Los procesos pueden colaborar entre si para resolver una tarea compleja.
•
La colaboración entre procesos requiere la comunicación (datos) y sincronización (su
ejecución).
•
El servicio de comunicación y sincronización debe ser provisto por el sistema operativo.
•
Comunicación local o remota (fig9cap1).
• Local: Procesos en la misma máquina
• Remota: Procesos en distinta máquina.
•
Comunicación sincrona o asincrona:
• Sincrona (fig10cap1):
• Proceso A envía un dato a B. Proceso A espera que B reciba para continuar
su ejecución
• Proceso B solicita dato a A. proceso B espera el envió del dato por parte de
A.
• Asincrona:
• El emisor no espera hasta que el receptor reciba el dato (sigue su
ejecución).
• Implica almacenamiento intermedio de los datos hasta que el emisor reciba
los datos.
1.3.2 Llamadas al sistema.
Generalidades
•
El sistema operativo es un nivel dentro de la organización de niveles de la computadora.
•
Dicho nivel ofrece al programador una serie de instrucciones de alto nivel que tienen como
objeto aislar al programador del HW (Establecimiento de una máquina virtual).
•
Las instrucciones u operaciones extendidas que proporciona el SO se denominan
llamadas al sistema.
Servicios prestados por el sistema operativo
•
El sitema operativo presta sus servicios mediante las llamadas al sistema.
•
Servicios de gestión de procesos:
• Tienen que ver con las fases de la vida de un proceso: Creación, ejecución y
muerte.
• Crear proceso, ejecutar proceso, terminar proceso, cambiar el programa de un
proceso.
•
Servicios de comunicación entre procesos:
• Tiene que ver con las fases de la vida de un mecanismo de comunicación:
Creación, utilización destrucción.
• Crear mecanismo, enviar o escribir datos, recibir o leer datos, destruir mecanismos
•
Servicios de sincronización de procesos: Crear mecanismo, bloquear proceso, despertar
proceso, destruir mecanismo.
•
Servicios de gestión de memoria: Solicitar memoria, liberar memoria, compartir memoria.
•
Servicios de gestión de archivos y directorios:
• Archivos: Crear, abrir, ecribir, leer, cerrar, borrar.
• Directorios:Crear, borrar, abrir, leer, cerrar.
•
Servicios de seguridad y protección: Tienen que ver con la capacidad de asignación de
atributos de seguridad a los recursos y a los usuarios.
•
Servicios de entrada salida:
• Son independientes de los dispositivos de entrada salida.
• Orientados al bloque o al caracter.
• Se refieren a lectura y lectura de dispositivos.
•
Servicios de detección y tratamiento de errores: El sistema operativo se encarga de tratar
las condiciones de error que detecte el Hardware.
Interfaces del programador
•
Posix:
• Estandar de Interfacez de Sistemas Operativos Portables de IEEE basado en el
sistema operativo Unix.
• Familia de estándares en evolución (fig11cap1).
• Posix es una especificación del estandar, no define una implementación.
• Se encuentra disponible en todas las versiones de Unix.
•
Win 32
• Define los servicios ofrecidos por los sistemas Windows 95/98, Windowd NT y
Windows 2000.
• No son genéricos. Son establecidos por una casa comercial determinada.
1.3.3 Archivos y directorios
Generalidades de archivos y directorios
•
El Sistema Operativo presenta una abstracción de los discos y de los dispositivos de
entrada salida. Esta abstracción se denomina sistema de archivos.
•
Un archivo es una abstración de un conjunto de bloques de disco que tienen alguna
relación.
•
Los directorios son archivos cuya estructura es una tabla. Las tabla contiene entradas que
representan directorios o archivos.
•
Los directorios permiten agrupar archivos y establecer una jerarquía de árbol para los
archivos (fig13cap1).
Nombre de los archivos
•
Un conjunto de bloques de disco puede ser referenciado mediante un nombre, el nombre
del archivo.
•
Tipos de referencia
• Absoluta: Desde el tope de la jerarquía de archivos (Directorio raiz).
• Relativa: Desde el directorio de trabajo.
En general un proceso tiene un directorio de trabajo, en donde se buscan los
archivos cuya ruta no comienza con “/”.
Protección de archivos y directorios
•
En los SS.OO. basados en el estandar POSIX para UNIX poseen un código de protección
consistente en 3 grupos de 3 bits. Los tres primeros para el propietario, los tres segundos
para los miembros del grupo (el administrador divide a los usuarios en grupos) y los tres
últimos para el resto.
•
Los tres bits se conocen como bits rwx.
• r: Especifica el acceso para lectura del archivo
• w: Especifica el acceso para escritura del archivo.
• x: Especifíca el acceso para ejecución.
•
El código rwxr-x--x indica para:
• Dueño del archivo: Permiso de lectura, escritura y ejecución.
• Miembros del grupo: Permiso para lectura y ejecución.
• Resto: Sólo permiso de ejecución.
Montaje de sistemas de archivos
•
Es posible conectar y acceder a sistemas de archivos el sistema de directorios principal
(discos flexbles, CDRoms) mediante la llamada mount (fig14cap1).
•
Esta llamada permite conectar el sistema de archivos externo a cualquier directorio del
sistema de archivos principal. Los directorios receptores de sistemas de archivos deben
estar vacíos.
Archivos especiales
•
Los archivos especiales se utilizan para simular dispositivos de E/S. De esta forma estos
dispositivos pueden ser manejados como archivos.
•
Con la abstracción anterior los dispositivos de E/S pueden leerse y escribirse usando las
mismas llamadas al sistema que para los archivos tradicionales.
•
Existen archivos especiales por bloques y archivos especiales por caractéres.
•
Archivos especiales por bloques: Se usan para modelar dispositivos que contienen a un
conjunto de bloques directamente direccionables.
•
Archivos especiales por caracteres: Se usan para modelar dispositivos que aceptan o
producen flujos de caracteres (módems, impresoras, etc).
Conductos o Pipes
•
Los conductos son seudoarchivos que sirven para comunicar dos procesos (fig15cap1).
•
Si un proceso A desea enviar datos a un proceso B, el proceso A escribe en el conducto
como si fuera un archivo de salida. El proceso B puede leer los datos como si fuera un
archivo de entrada.
1.3.4 El interprete de comandos
•
El interprete de comandos o shell es un proceso que se ejecuta sobre el nivel de SO por lo
que no pertenece al SO mismo.
•
El shell es una interface entre el usuario y su terminal con el SO.
•
Cuando se inicia una sesión el sistema inicia un shell.
•
El proceso interprete de comandos tiene como entrada y salida estandar el terminal.
•
El shell exhibe la indicación (prompt) que indica al usuario que está listo para recibir
comandos.
•
Si el usuario teclea una orden o comando, el shell crea un proceso hijo que ejecuta el
programa del comando. Cuando el proceso hijo se termina, el shell exhibe nuevamente el
prompt para indicar que espera nuevos comandos.
•
Redireccionamientos
• Se utilizan para cambiar el archivo de entrada o salida estándar de un proceso.
• Ejemplos: ls -la > archivo, sort <archivo1 >archivo2
•
Pipes
•
•
Ejecución de programas en segundo plano(background)
• Cuando se ejecuta un programa en segundo plano el Sistema Operativo no espera
que termine sino que devuelve el control al interprete de comandos que exhibe de
inmediato el prompt.
• Cat archiv1 archiv2 archiv 3 | sort > /dev/lp &
Cat archiv1 archiv2 archiv 3 | sort > /dev/lp