Foro de discusión creado para desarrollar los contenidos Academicos de las materias y temas propuestos de interés para los estudiantes de Sistemas. |
Bienvenidos a mis clase desarrolladas, las materias recientemente registradas son Analisis y Diseño de Sistemas Estructurados y Arquitectura Computacional. No olviden que debn registrase para poder colocar respuestas. Y colocar sus deberes. |
| | Clase 02 - Objetivos | |
| | Autor | Mensaje |
---|
AngelPlaza
Cantidad de envíos : 8 Puntos : 24 Reputación : 2 Fecha de inscripción : 26/05/2009
| Tema: Clase 02 - Objetivos Vie Jul 03, 2009 6:39 pm | |
| OBJETIVOS
- Revisar los aspectos mas sobresalientes, sobre la estructura y funcionamiento de los computadores, para lo cual analizaremos ligeramente los fundamentos de la arquitectura y organización de los computadores.
- Conocer la variedad de conceptos, estructuras y mecanismos de los sistemas operativos modernos; su naturaleza y características.
- Conocer el dominio que ejerce un software, sobre un hardware.
- Comprender como un sistema operativo, administra los recursos de un computador: procesadores, memorias, dispositivos de entrada / salida, dispositivos de comunicación
- Planificar los recursos entre usuarios ( E/S)
- Comprender , el reto que ofrecerán los nuevos sistemas.
CONCEPTOS DE SISTEMAS OPERATIVO
- “Un S. O. es un grupo de programas de proceso con las rutinas de control necesarias para mantener continuamente operativos dichos programas”.
- Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computadora destinado a permitir una administración eficaz de sus recursos.
- Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la máquina desde los niveles más básicos, permitiendo también la interacción con el usuario.
- Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos electrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios, computadoras, etc.).
Visión respecto de los S. O.:
- El S. O. es una máquina ampliada (llamada también máquina virtual) que es más fácil de programar y manejar que el propio hardware de la máquina (llamada también máquina real).
- El S. O. es un gestor de recursos que ofrece una distribución ordenada y controlada de los dispositivos de la máquina real, entre los distintos programas que compiten por esos recursos.
Las funciones de un S. O. han sido, clásicamente, las siguientes:
- La gestión de recursos
- La ejecución de servicios para los programas.
- La ejecución de órdenes de usuario.
Las principales características de los S. O. :
- Definir la “Interfaz del Usuario”.
- Compartir el hardware entre usuarios.
- Permitir a los usuarios compartir los datos entre ellos.
- Planificar recursos entre usuarios.
- Facilitar la entrada / salida.
- Recuperarse de los errores.
Los principales recursos administrados por los S. O. son:
- Procesadores.
- Almacenamiento.
- Dispositivos de e / s.
- Datos.
| |
| | | Otto Navas
Cantidad de envíos : 7 Puntos : 9 Reputación : 0 Fecha de inscripción : 16/05/2010
| Tema: Re: Clase 02 - Objetivos Lun Mayo 17, 2010 12:30 pm | |
| CONTENIDO A DESARROLLAR
1. Conceptos Arquitectónicos de la Computadora
1. Conceptos básicos.
2. El procesador.
3. Interrupciones.
4. Jerarquía de memoria.
5. La memoria virtual.
6. Entrada y salida.
2. Introducción a los Sistemas Operativos
1. Que es un Sistema Operativo?
2. Componentes y estructura de un Sistema Operativo
3. Gestión de procesos.
4. Gestión de Memoria.
5. Comunicación y sincronización entre procesos.
6. Gestión de archivos y directorios.
7. Seguridad y protección.
8. Historia de los Sistemas Operativos.
3. Procesos.
1. Conceptos de Procesos
2. Multitarea
3. Información de Procesos
4. Estados del proceso
5. Planificación
6. Temporizadores
7. Servidores y demonios
4. Gestión de Memoria.
1. Objetivos del sistema de gestión de memoria
2. Intercambio
3. Memoria Virtual
1. Paginación
2. Segmentación
3. Paginación de memoria
5. Comunicación y sincronización de procesos.
1. Problemas clásicos de comunicación y sincronización
2. Mecanismos de comunicación y sincronización
3. Paso de mensajes
6. Gestión de Archivos y directorios.
1. Archivos
2. Directorios
3. Servicios de Archivos y directorios
4. Sistemas de Archivos
5. El servidor de archivos
7. Seguridad y protección.
1. Conceptos de Seguridad y protección
2. Problemas de seguridad
3. Políticas de seguridad
4. Diseño de sistemas operativos seguros
5. Criptografía
6. Clasificaciones de seguridad
7. Seguridad y protección en sistemas operativos de propósito
general.
| |
| | | Otto Navas
Cantidad de envíos : 7 Puntos : 9 Reputación : 0 Fecha de inscripción : 16/05/2010
| Tema: Re: Clase 02 - Objetivos Lun Mayo 17, 2010 12:45 pm | |
| CAPITULO1:
Conceptos Arquitectónicos de la Computadora
1. Conceptos básicos.
2. El procesador.
3. Interrupciones.
4. Jerarquía de memoria.
5. La memoria virtual.
6. Entrada y salida.
CONCEPTOS ARQUITECTONICOS DE LA COMPUTADORA
La arquitectura de computadoras es el diseño conceptual y la estructura
operacional fundamental de un sistema de computadora. Es decir, es un
modelo y una descripción funcional de los requerimientos y las
implementaciones de diseño para varias partes de una computadora, con
especial interés en la forma en que la unidad central de proceso (CPU) trabaja
internamente y accede a las direcciones de memoria.
También suele definirse como la forma de seleccionar e interconectar
componentes de hardware para crear computadoras según los requerimientos
de funcionalidad, rendimiento y costo
El ordenador recibe y envía la información a través de los periféricos por medio
de los canales. La CPU es la encargada de procesar la información que le llega
al ordenador. El intercambio de información se tiene que hacer con los
periféricos y la CPU.
/// Imagen 1
Todas aquellas unidades de un sistema exceptuando la CPU se denominan
periférico, por lo que el ordenador tiene 4 partes bien diferenciadas, que son:
- La CPU (encargada de ejecutar programas y que esta compuesta por la
memoria principal, la UAL y la UC)
- La memoria (que contiene los datos de programas y registros de
direcciones)
- Los periféricos (que pueden ser de entrada, salida, entrada-salida y
comunicaciones).
- Bus del sistema. Mecanismos y estructuras que permiten la
comunicación entre procesadores, memoria y E/S
Este esquema básico con que se indica la arquitectura de una computadora se
denomina Arquitectura de Von Newman.
/// Imagen 2
/// Imagen 3
La computadora u ordenador, además de la rutina o programa informático,
consta de:
_ Datos específicos (a estos datos, en conjunto, se les conoce como "Input"
en inglés) que deben ser suministrados, y que son requeridos al momento
de la ejecución.
_ El producto final del procesamiento de datos, que recibe el nombre de
"output".
_ La información, que puede ser entonces utilizada, reinterpretada, copiada,
transferida, o retransmitida a otra(s) persona(s), computadora(s) o
componente(s) electrónico(s) local o remotamente usando diferentes
sistemas de telecomunicación, pudiendo ser grabada, salvada o
almacenada en algún tipo de dispositivo o unidad de almacenamiento
/// Imagen 4
/// Imagen 5
EL PROCESADOR
Un procesador incluye un conjunto de registros que proporcionan un nivel de
memoria que es más rápido y pequeño que la memoria principal.
Tienen 2 TIPOS:
1. Registros visibles de usuario.
Permite al programador minimizar las referencias a la memoria principal,
optimizando el uso de estos registros. Puede ser referenciado por medio de
lenguaje máquina y está disponible para todos los programas (aplicación y de
sistema)
Tipos de registros
_ Datos. Pueden ser asignados por el programador a diversas funciones.
_ De dirección. Contienen direcciones de la memoria principal de datos e
instrucciones o una parte de la dirección.
o Índice. Implica sumar un índice a una dirección base para obtener
la dirección efectiva
o Puntero de segmento. Una referencia a memoria consta de una
referencia a un segmento particular y un desplazamiento dentro
del segmento
o Puntero de pila. La pila estará formada por un conjunto secuencial
de registros, teniendo uno dedicado a señalar la cima
2. Registros de control y de estado.
Son usados por el procesador para el control de las operaciones y rutinas
privilegiadas del S. O. para controlar la ejecución de programas
Los siguientes registros son esenciales en la ejecución de instrucciones:
_ PC, Program Counter. Contiene la dirección de la instrucción a ser leída
_ IR, Instruction Register. Contiene la última instrucción leída
_ PSW, Program Status Word. Contiene información de estado. Indica si
las interrupciones están habilitadas o inhabilitadas y el estado usuario o
supervisor
_ Códigos de Condición o FLAGS, son un conjunto de bits activados por el
hardware del procesador como resultado de determinadas operaciones.
Una operación aritmética puede producir un resultado positivo, negativo,
cero o desbordamiento.
/// Imagen 6
/// Imagen 7
/// Imagen 8
Al comienzo de cada ciclo de instrucción, el procesador lee una instrucción de
la memoria.
El PC indica cual es la próxima instrucción a leer y se incrementa después de
leer cada instrucción. La instrucción leída se carga en el IR.
La instrucción especifica cuál es la acción que el procesador llevará a cabo:
• Procesador – memoria. Transfiere datos entre el procesador y la
memoria
• Procesador – E/S. Transfiere datos desde o hacia un dispositivo
• Tratamiento de datos. Operación aritmética o lógica de los datos
• Control. Puede especificar que la secuencia de ejecución sea alterada.
EJEMPLO DE CÓMO TRABAJA
/// Imagen 9
PC=300
Lee 1940
IR =1940
1=Acumular
940=Memoria
Ac=3
PC=301
Lee 5941
IR=5941
5=Sumar
941=Memoria
Ac=3+2=5
PC=302
Lee 2941
IR=2941
5=Copiar
941=Memoria
Ac=5
EJECUCIÓN DE INSTRUCCIONES
_ Todo programa es una sucesión de instrucciones que le indican al
procesador la acción que este debe realizar, pero estas no son pasadas
de forma directa del programa al procesador, antes de esto se llevan a
cabo algunos pasos intermedios.
_ Al ejecutar un programa este es «cargado» en la memoria principal, la
cual pasará a solicitud del procesador una a una cada instrucción
almacenada
_ El procesador se encargará de la ejecución de las instrucciones y de una
nueva petición a la memoria primaria para la siguiente instrucción.
_ Aunque pueda parecer un proceso lento en realidad es ejecutado en
fracciones de segundo por lo cual al ser humano le parece que se lleva a
cabo de forma instantánea.
_ Para ajustarse a la realidad esta es una visión simplificada del proceso,
ya que conlleva una serie de pasos más en los cuales entran a jugar un
papel trascendental algunos registros del procesador.
Funciones de E/S
_ Las operaciones de E/S ocurren directamente con la memoria.
_ Los controladores de dispositivos de E/S pueden intercambiar datos
directamente con el procesador.
_ En algunos casos es conveniente permitir que los intercambios de E/S
se produzcan directamente con la memoria, para relevar al procesador
de la tarea de E/S (DMA, Direct Memory Access)
Interrupciones
_ Es una interrupción de una secuencia normal de ejecución.
_ Mejora la eficiencia del procesamiento.
_ Permite al procesador ejecutar otras instrucciones mientras una
operación de E/S se está ejecutando.
_ Es una suspensión de un proceso causado por un evento externo a ese
proceso y ejecutado de tal forma que el proceso puede reanudarse.
_ Algunos sistemas operativos ejecutan todos los trabajos en forma de
lotes (batch), es decir no podían hacer ningún otro trabajo hasta tanto el
programa en ejecución no terminase su trabajo.
_ Por lo cual cuando este debía por ejemplo leer de un CD o un disquette,
pareciera que el programa y hasta la máquina completa se bloquease
por un tiempo y después «milagrosamente» se recuperase.
_ Para solucionar este problema la mayoría de S.O. modernos utilizan el
concepto de interrupción.
_ Este concepto se basa en el trabajo «colaborativo», es decir, el
procesador entrega el control de la E/S a un módulo que se encarga de
ejecutar este tipo de operaciones y esperar hasta que estas se
completen.
_ Y cuando esto suceda avisarle al procesador (que se encuentra mientras
tanto realizando otras instrucciones-bien sea del mismo programa o de
algún otro-) que puede continuar con las operaciones subsiguientes que
quedaron pendientes cuando la petición de E/S.
_ La comunicación entre el procesador y la memoria principal es a gran
velocidad, sin embargo la mayoría de programas deben interactuar con
algún tipo de dispositivo de E/S, durante este proceso la ejecución del
programa se ve interrumpida ya que la comunicación con dichos
dispositivos es significativamente más lenta que con la memoria.
_ En algunas ocasiones esta operación puede ser incluso más lenta ya
que puede requerir la intervención humana y obviamente el tiempo de
reacción se reducirá de manera drástica.
_ Un ejemplo típico de estas situaciones y que muy seguramente a todos
nos es familiar se presenta cuando estamos utilizando un procesador de
textos para redactar un documento, el aplicativo debe estar pendiente de
cada acción desde el teclado o el ratón (o algún otro dispositivo que
pueda estar involucrado) y cuando se produzca, responder de manera
adecuada según corresponda, por más rápido que sea el digitador
siempre será más lento que el procesador e incluso que algunos
dispositivos
JERARQUIA DE MEMORIA
Es la organización piramidal de la memoria en niveles, que tienen los
computadores. Su objetivo es conseguir el rendimiento de una memoria de
gran velocidad al coste de una memoria de baja velocidad, basándose en el
principio de cercanía de referencias.
Los puntos básicos relacionados con la memoria pueden resumirse en:
_ Cantidad
_ Velocidad
_ Coste
La cuestión de la cantidad es simple, cuanto más memoria haya disponible,
más podrá utilizarse.
La velocidad óptima para la memoria es la velocidad a la que el procesador
puede trabajar, de modo que no haya tiempos de espera entre cálculo y
cálculo, utilizados para traer operandos o guardar resultados.
Y el costo de la memoria no debe ser excesivo, para que sea factible construir
un equipo accesible.
Como puede esperarse los tres factores compiten entre sí, por lo que hay que
encontrar un equilibrio. Las siguientes afirmaciones son válidas:
_ A menor tiempo de acceso mayor coste.
_ A mayor capacidad mayor coste.
_ A mayor capacidad menor velocidad.
Se busca entonces contar con capacidad suficiente de memoria, con una
velocidad que sirva para satisfacer la demanda de rendimiento y con un coste
SISTEMAS OPERATIVOS
SISTEMAS OPERATIVOS – Ing. Angel Plaza - Página 12 de 43
que no sea excesivo. Gracias a un principio llamado cercanía de referencias,
es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento
cercano al de la memoria más rápida.
Los niveles que componen la jerarquía de memoria habitualmente son:
* Nivel 0: Registros
* Nivel 1: Memoria caché
* Nivel 2: Memoria principal
* Nivel 3: Disco duro (con el mecanismo de memoria virtual)
* Nivel 4: Redes (Actualmente se considera un nivel más de la jerarquía de
memorias)
///IMAGEN 10
MEMORIA VIRTUAL
La memoria virtual es una técnica que permite al software usar más memoria
principal que la que realmente posee el ordenador.
La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la
CPU, la memoria caché (tanto dentro como fuera del CPU), la memoria física
(generalmente en forma de RAM, donde la CPU puede escribir y leer directa y
razonablemente rápido) y el disco duro que es mucho más lento, pero también
más grande y barato.
Cuando se usa Memoria Virtual, o cuando una dirección es leída o escrita por
la CPU, una parte del hardware dentro de la computadora traduce las
direcciones de memoria generadas por el software (direcciones virtuales) en:
La dirección real de memoria (la dirección de memoria física).
Una indicación de que la dirección de memoria deseada no se encuentra
en memoria principal (llamado excepción de memoria virtual)
En el primer caso, la referencia a la memoria es completada, como si la
memoria virtual no hubiera estado involucrada: el software accede donde debía
y sigue ejecutando normalmente.
En el segundo caso, el sistema operativo es invocado para manejar la situación
y permitir que el programa siga ejecutando o aborte según sea el caso.
La memoria virtual es una técnica para proporcionar la simulación de un
espacio de memoria mucho mayor que la memoria física de una máquina. Esta
"ilusión" permite que los programas se ejecuten sin tener en cuenta el tamaño
exacto de la memoria física.
La ilusión de la memoria virtual está soportada por el mecanismo de
traducción de memoria, junto con una gran cantidad de almacenamiento
rápido en disco duro. Así en cualquier momento el espacio de direcciones
virtual hace un seguimiento de tal forma que una pequeña parte de él, está en
memoria real y el resto almacenado en el disco, y puede ser referenciado
fácilmente.
Este método es invisible a los procesos. La cantidad de memoria máxima que
se puede hacer ver que hay tiene que ver con las características del
procesador. Por ejemplo, en un sistema de 32 bits, el máximo es 232, lo que
da 4096 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador
de aplicaciones mucho más fácil, al poder ignorar completamente la necesidad
de mover datos entre los distintos espacios de memoria. | |
| | | Otto Navas
Cantidad de envíos : 7 Puntos : 9 Reputación : 0 Fecha de inscripción : 16/05/2010
| Tema: Re: Clase 02 - Objetivos Lun Mayo 17, 2010 12:45 pm | |
| CAPITULO 2:
Introducción a los Sistemas Operativos
1. Que es un Sistema Operativo?
2. Componentes y estructura de un Sistema Operativo
3. Gestión de procesos.
4. Gestión de Memoria.
5. Comunicación y sincronización entre procesos.
6. Gestión de archivos y directorios.
7. Seguridad y protección.
8. Historia de los Sistemas Operativos.
QUE ES UN SISTEMA OPERATIVO?
Un sistema operativo es un software de sistema, es decir, un conjunto de
programas de computadora destinado a permitir una administración
eficaz de sus recursos.
Comienza a trabajar cuando se enciende el computador, y gestiona el
hardware de la máquina desde los niveles más básicos, permitiendo también la
interacción con el usuario.
Un sistema operativo se puede encontrar en la mayoría de los aparatos
electrónicos que utilicen microprocesadores para funcionar, ya que gracias a
éstos podemos entender la máquina y que ésta cumpla con sus funciones
(teléfonos móviles, reproductores de DVD, auto radios, computadoras, radios,
etc).
Una de las principales funciones de un S.O. es el de servir de máquina virtual
o extendida.
Esta funcionalidad es la que le permite al programador abstraer la capa de
hardware y utilizar una serie de llamadas al sistema operativo para que este
sea el encargado de tratar a bajo nivel con los componentes físicos.
Si no existiese esta funcionalidad todo programador que en una aplicación
necesite grabar en un disco duro o disquette y/o imprimir en una impresora,
debería escribir el código que le permita hacer esto pero de forma individual
para cada dispositivo al que desee dar soporte.
Por Ejemplo:
_ Si el programador sólo incluye funcionalidad para las impresoras marca A y
B, si el usuario tiene una de marca C no podría utilizar las funciones de
impresión
_ Lo mismo sucedería con los dispositivos de almacenamiento y en general
se iría complicando entre más dispositivos sea necesario utilizar y entre
mayor sea la diversidad de estos dispositivos.
Es por este motivo que en la definición «rápida» se dice que provee una
interfaces entre las aplicaciones y el hardware.
La otra gran tarea de un sistema operativo es servir de «agente del orden».
• Es quien controla el acceso y la utilización de los recursos del
sistema y los distribuye de forma tal que los más voraces no lo
consuman todo dejando a los demás sin estos.
También controla quién hace uso de estos recursos y en que momento.
• Sin esta función del sistema operativo todos los procesos podrían por
ejemplo enviar al mismo tiempo peticiones de escritura/lectura a un
disco y por consiguiente no se podría garantizar que se complete con
éxito ninguno de las peticiones ya que no habría forma de controlar
en que momento este se encuentra ocupado cumpliendo la misión
encomendada por un proceso.
Por tanto un sistema operativo debe poder conocer cuando un recurso está
siendo utilizado y en que momento está libre y dependiendo de esto permitir o
no su uso.
_ Las principales características de los S. O. :
_ Definir la “Interfaz del Usuario”.
_ Compartir el hardware entre usuarios.
_ Permitir a los usuarios compartir los datos entre ellos.
_ Planificar recursos entre usuarios.
_ Facilitar la entrada / salida.
_ Recuperarse de los errores.
_ Los principales recursos administrados por los S. O. son:
_ Procesadores.
_ Almacenamiento.
_ Dispositivos de e / s.
_ Datos.
COMPONENTES DE UN SISTEMA OPERATIVO
Los sistemas operativos están formados por una serie de componentes
especializados en determinadas funciones. Cada sistema operativo estructura
estos componentes en forma distinta.
Basicamente, un sistema operativo esta formado por 3 capas:
El núcleo, que interactúa directamente con el hardware de la maquina,
se centra en la gestión del procesador, interrupciones y manipulación de
memoria.
Los servicios, que representa las funciones básicas del sistema
operativo, como por ejemplo, la gestión de la memoria, de los procesos,
de los archivos, de las entradas/salidas principales, gestión de seguridad
y de las funciones de comunicación.
El intérprete de comandos, que posibilita la comunicación con el
sistema operativo a través de un lenguaje de control, permitiendo al
usuario controlar los periféricos sin conocer las características del
hardware utilizado, la gestión de las direcciones físicas, etcétera.
///imagen 11
Todos estos componentes ofrecen una serie de servicios a través de una
interfaz de llamada al sistema. Un sistema operativo puede incluir más de una
interfaz de servicio conocidas como API, en la grafica se muestran los dos que
se trataran a lo largo del curso WIN 32 y POSIX.
Una API representa una interfaz de comunicación entre componentes de
software. Se trata del conjunto de llamadas a ciertas bibliotecas que ofrecen
acceso a ciertos servicios desde los procesos y representa un método para
conseguir abstracción en la programación, generalmente (aunque no
necesariamente) entre los niveles o capas inferiores y los superiores del
software.
Uno de los principales propósitos de una API consiste en proporcionar un
conjunto de funciones de uso general, por ejemplo, para dibujar ventanas o
iconos en la pantalla. De esta forma, los programadores se benefician de las
ventajas de la API haciendo uso de su funcionalidad, evitándose el trabajo de
programar todo desde el principio.
Ejemplos de API:
Microsoft WMI
Microsoft Win32 API
Microsoft Framework .NET
OpenGL
Java EE
API for SCSI device interfacing
The Carbon APIs for the Macintosh OS
Common Object Request Broker Architecture (CORBA)
Symfony para PHP
Drupal API
ESTRUCTURA DE UN SISTEMA OPERATIVO
Se considera la organización interna de los S. O. y conforme a ella se los
clasifica de la siguiente manera:
SISTEMA OPARATIVO MONOLITICO
Es la estructura de los primeros sistemas operativos constituidos
fundamentalmente por un solo programa compuesto de un conjunto de rutinas
entrelazadas de tal forma que cada una puede llamar a cualquier otra. Las
características fundamentales de este tipo de estructura son:
Construcción del programa final a base de módulos compilados
separadamente que se unen a través del encadenador (linker).
Buena definición de parámetros de enlace entre las distintas rutinas
existentes, lo que puede provocar mucho acoplamiento.
Carecen de protecciones y privilegios al entrar a rutinas que manejan
diferentes aspectos de los recursos del computador, como memoria,
disco, etc.
Generalmente están hechos a medida, por lo que son eficientes y
rápidos en su ejecución y gestión, pero por lo mismo carecen de
flexibilidad para soportar diferentes ambientes de trabajo o tipos de
aplicaciones.
SISTEMA OPARATIVO ESTRUCTURADO
A medida que fueron creciendo las necesidades de los usuarios y se
perfeccionaron los sistemas, se hizo necesaria una mayor organización del
software, del sistema operativo, donde una parte del sistema contenía subpartes
y esto organizado en forma de niveles.
Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una
de ellas estuviera perfectamente definida y con un claro interface con el resto
de elementos.
///imagen 12
Se constituyó una estructura jerárquica 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 didácticos. Se puede pensar
también en estos sistemas como si fueran ‘multicapa’.
///imagen 13
///imagen 14
5 – O p e r a d o r
4 - Pr o g r a m a s d e l U s u a r i o
3 - C o n t r o l d e E n t r a d a – Sa l i d a
2 - C o m u n i c a c i o n e s O p e r a d o r – Pr o c e s o
1 - A d m i n i s t r a c i ó n d e la M e m o r i a y d e l D i s c o
0 - A s i g n a c i ó n d e l Pr o c e s a d o r y
M u l t i p r o g r a m a c i ó n
///imagen 15
GESTION DE PROCESOS
_ Un proceso es la forma en que un sistema operativo trata a un programa
durante su ejecución.
_ Para que el procesador pueda trabajar con un programa es necesario
que exista algo de información adicional.
_ Como los registros de operación en el procesador, los datos de entrada
del programa, etc.
_ Acompañando al código objeto (o ejecutable), por tanto, cuando se dice
que proceso es la forma en que el sistema trata a todo programa durante
su ejecución, estamos haciendo referencia a todo este conjunto.
_ Cuando un sistema operativo arranca este crea algunos procesos
principales que serán los encargados de crear todos los demás
procesos, como a su vez cualquier proceso puede crear otros procesos
(denominados «hijos»).
_ Obtenemos una estructura jerárquica en forma de árbol donde todo
proceso (exepto el o los iniciales del S.O.) tiene un padre (o antecesor).
_ Y a su vez cada proceso tiene la capacidad de tener uno o más hijos.
_ A este conjunto conformado por un padre y todos sus hijos (y
recursivamente los hijos de estos) se le denomina familia de procesos.
_ Un proceso puede crear otros varios procesos nuevos mientras se
ejecuta para ello se utiliza una llamada al sistema específica para la
creación de procesos.
_ El proceso creador se denomina proceso padre, y los nuevos son los
hijos de dicho proceso, cada uno de estos procesos pueden crear a su
vez otros procesos dando lugar a un árbol de procesos.
///imagen 15
En los sistemas operativos GNU Linux, para visualizar ese árbol
podemos hacerlo a través del comando pstree.
Por ejemplo, ejecutamos pstree -pl, donde los argumentos p y l,
respectivamente muestran los pid de los procesos y no truncan líneas
largas, podemos obtener algo como el siguiente fragmento:
Como se puede ver todos los procesos tienen un padre común (init)
///imagen 16
Dependiendo del número de procesos y de usuarios que puedan ejecutar
simultáneamente, un sistema operativo puede ser:
MULTIPROGRAMACIÓN
_ Íntimamente ligado al concepto de procesos, la multiprogramación
permite administrar varios procesos en una sola CPU, alternando la
ejecución de estos a través de controles de tiempo, asignando límites
temporales de ejecución a cada proceso y alternándolos a medida que
este límite es alcanzado.
///imagen 17
MULTIPROCESAMIENTO
_ Este es otro importante concepto dentro de la administración de
procesos, sin embargo a diferencia de la multiprogramación esta gestión
se basa en la distribución de los procesos en múltiples procesadores.
///imagen 18
PROCESAMIENTO DISTRIBUIDO
_ En este caso la administración de los procesos se complica un poco más
al tener que distribuir la carga de procesamiento entre diferentes CPUs
pero con el aditivo especial de que estas se encuentran en otras
máquinas, la esencia del procesamiento distribuido es manejar todos los
recursos de que dispone el conjunto distribuido como si fuesen una sola
máquina.
///imagen 19
///imagen 20
GESTIÓN DE MEMORIA.
La memoria es uno de los principales recursos de la computadora, la cual debe
de administrarse con mucho cuidado. Aunque actualmente la mayoría de los
sistemas de cómputo cuentan con una alta capacidad de memoria, de igual
manera las aplicaciones actuales tienen también altos requerimientos de
memoria, lo que sigue generando escasez de memoria en los sistemas
multitarea y/o multiusuario.
La parte del sistema operativo que administra la memoria se llama
administrador de memoria y su labor consiste en llevar un registro de las
partes de memoria que se estén utilizando y aquellas que no, con el fin de
asignar espacio en memoria a los procesos cuando éstos la necesiten y
liberándola cuando terminen, así como administrar el intercambio entre la
memoria principal y el disco en los casos en los que la memoria principal no le
pueda dar capacidad a todos los procesos que tienen necesidad de ella.
Los sistemas de administración de memoria se pueden clasificar en dos tipos:
los que desplazan los procesos de la memoria principal al disco y viceversa
durante la ejecución y los que no.
El propósito principal de una computadora es el de ejecutar programas, estos
programas, junto con la información que accedan deben de estar en la
memoria principal (al menos parcialmente) durante la ejecución.
Para optimizar el uso del CPU y de la memoria, el sistema operativo debe de
tener varios procesos a la vez en la memoria principal, para lo cual dispone de
varias opciones de administración tanto del procesador como de la memoria.
La selección de uno de ellos depende principalmente del diseño del hardware
para el sistema.
En resumen el administrador de memoria se encarga de los siguientes
puntos:
Asignar memoria a los procesos para crear su imagen en memoria
Proporcionar memoria a los procesos cuando la soliciten y liberarla
cuando así lo requieran.
Tratar los posibles casos de acceso a memoria, evitando que unos
procesos interfieran en la memoria de otros.
Permitir que los procesos puedan compartir memoria entre ellos. De esta
forma puede haber comunicación entre los procesos.
Gestionar la jerarquía de memoria y tratar los fallos de páginas en los
sistemas con memoria virtual.
Los hechos demuestran que generalmente los programas crecen en
requerimientos de memoria tan rápido como las memorias.
“Ley de Parkinson”: Los programas se desarrollan para ocupar
toda la memoria disponible para ellos.
GESTIÓN DE ARCHIVOS Y DIRECTORIOS.
_ Junto a los procesos el otro gran componente de un sistema operativo
es el sistema de archivos.
_ Todo proceso requiere para su ejecución que los datos que va a utilizar
se encuentren físicamente en algún sitio; lo que hace el sistema de
archivos precisamente es permitir que esta información se pueda
organizar de una manera lógica y sencilla.
_ Todo sistema operativo debe brindar las herramientas (en forma de
llamadas al sistema o instrucciones) para que el sistema de archivos sea
funcional, entre las principales se pueden encontrar:
_ Las de creación y destrucción de archivos.
_ Las de apertura y cierre de los archivos.
_ Las de lectura y escritura.
_ Un archivo realmente es una colección de bytes relacionados bajo
un único nombre.
_ Los archivos también se encuentran organizados bajo una estructura
que los relaciona lógicamente, esta estructura se denomina directorio
(algunos sistemas los denominan también como carpetas).
_ Debido a esto podemos ver que el sistema de archivos es también una
estructura jerárquica, la cual tiene un inicio en el directorio raíz (algunos
sistemas operativos como los derivados de MS DOS -este incluidotienen
un directorio raíz por cada partición encontrada en los discos).
///imagen 21
COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS.
Puede verse la concurrencia de procesos como la ejecución simultánea de
varios procesos.
Si tenemos un multiprocesador o un sistema distribuido la concurrencia parece
claro, en un momento dado cada procesador ejecuta un proceso.
Se puede ampliar el concepto de concurrencia si entendemos por procesado
concurrente (o procesado paralelo) la circunstancia en la que de tomar una
instantánea del sistema en conjunto, varios procesos se vean en un estado
intermedio entre su estado inicial y final. Esta última definición incluye los
sistemas multiprogramados de un único procesador que estudiamos en los
temas anteriores.
Los distintos procesos dentro de un ordenador no actúan de forma aislada. Por
un lado, algunos procesos cooperan para lograr un objetivo común. Por otro
lado, los procesos compiten por el uso de unos recursos limitados, como el
procesador, la memoria o los ficheros.
Estas dos actividades de cooperación y competición llevan asociada la
necesidad de algún tipo de comunicación entre los procesos.
La velocidad de un proceso con respecto a otro es impredecible ya que
depende de la frecuencia de la interrupción asociada a cada uno de ellos y
cuán a menudo y de por cuánto tiempo tiene asignado cada proceso un
procesador.
Entonces, un proceso se ejecuta asíncronamente con respecto a otro, es
decir, sus ejecuciones son independientes. Sin embargo, hay ciertos instantes
en lo que los procesos deben sincronizar sus actividades. Son estos puntos a
partir de los cuales un proceso no puede progresar hasta que otro haya
completado algún tipo de actividad.
Los procesos también necesitan comunicarse entre sí.
Por ejemplo, para leer de un fichero, los procesos de usuario deben decir al
proceso que gestiona los ficheros lo que desean. Este, a su vez, debe pedirle al
proceso de disco que lea los bloques necesarios. Cuando el shell conecta dos
procesos con un tubo, los datos de salida del primer proceso se transfieren al
segundo. Se necesita que los procesos se comuniquen entre sí, con un
mecanismo bien estructurado y no por medio de interrupciones.
SEGURIDAD Y PROTECCIÓN.
Facetas de la seguridad:
Protección ante posibles daños físicos de los datos (fuegos, terremotos)
Acceso indebido a los mismos (intrusos, fallos de confidencialidad).
Los ataques contra la confidencialidad, la integridad o la disponibilidad
de recursos en un sistema deben prevenirse y solventarse mediante la
política y los mecanismos de seguridad de un sistema.
Protección: consiste en evitar que se haga un uso indebido de los recursos
que están dentro del ámbito del sistema operativo. Para ello deben existir
mecanismos y políticas que aseguren que los usuarios sólo acceden a sus
propios recursos (archivos, zonas de memoria).
La seguridad de un sistema operativo se basa principalmente en tres
aspectos de diseño:
Evitar la pérdida de datos: La pérdida de datos puede deberse a
catástrofes naturales o artificiales que afecten al sistema (terremotos,
guerras), a errores del hardware o del software de la computadora
(rotura de un disco) o a errores humanos (borrado accidental de
archivos).
Controlar la confidencialidad de los datos: En el ámbito interno del
sistema operativo hay operaciones que pueden violar la confidencialidad
de los datos.
Controlar el acceso a los datos y recursos: El control del acceso a
datos y recursos sí es competencia directa del S.O. Es necesario
asegurar que los usuarios no acceden a archivos para los que no tienen
permisos de acceso a cuentas de otros usuarios o a páginas de
memoria o bloques de disco q contienen información de otros usuarios.
Todos los S.O. desarrollados hasta el momento han tenido algún problema de
seguridad. Algunos son:
Los fallos de UNIX que permitían que un usuario pudiera abortar un
mandato con permisos de súper usuario, como mkdir, y quedarse con la
identificación de súper-usuario.
En versiones antiguas de UNIX, cualquier usuario podía leer el archivo
passwd donde se almacenaban los usuarios y sus palabras clave
cifradas.
Problemas más frecuentes en un sistema informático - Uso indebido o
malicioso de programas:
El caballo de Troya se basa en la idea de crear un programa para que haga
cosas no autorizadas en el sistema cuando actúa en el entorno adecuado. Ej:
editor de texto modificado para que haga copias de los archivos a los
directorios del intruso, programa de login modificado.
La puerta de atrás consiste en crear un agujero de seguridad al sistema a
través de un programa privilegiado que lo permite ejemplos:
Convencer a un programador de sistema para que le deje acceder con
privilegios anormales.
Permitir que el diseñador de un programa se reserve el acceso por
medios no conocidos, tales como una identificación reservada.
Las puertas de atrás no siempre son perjudiciales o maliciosas. Pueden
tener varias causas:
Se dejan a propósito para probar el sistema
Se dejan para mantener el sistema.
Se dejan como un medio de acceso encubierto, o canal.
Usuarios inexpertos o descuidados:
Borran archivos no deseados, dejan abiertos los accesos al sistema
durante largo tiempo o escribir la palabra clave en un papel junto a la
computadora son más frecuentes de lo que parece.
Usuarios no autorizados:
Un usuario no autorizado, o pirata, trata de saltarse o romper el proceso
de autenticación para entrar en el sistema de computación con la
identidad de un usuario legítimo, especialmente con la del administrador.
Si lo consigue, puede hacer todo aquello a lo que su identidad falsa le
conceda derecho. Acceder como administrador se puede hacer lo que
desee, desde borrar datos hasta crearse una cuenta verdadera con
identidad falsa o cambiar la contraseña del administrador para que sólo
pueda acceder él.
Virus: programas que se autorreplican con fines destructivos o de violación de
seguridad. En todos los casos se trata de un programa o un trozo de código
que se añade a otro y que se activa cuando se ejecuta el programa portador.
Cuando esto ocurre, además de ejecutarse el portador, se ejecuta el virus.
Gusanos: El 2 de noviembre de 1988, R. T. Morris, un estudiante de Cornell,
liberó un programa gusano en Internet. El gusano leía las tablas de
encaminamiento del sistema infectado y enviaba el cargador a todos los
sistemas remotos que podía, usando para ello tres mecanismos de
penetración:
• Intérprete de mandatos remoto (rsh).
• Demonio del finger.
• sendmail.
Este gusano provocó la caída de miles de computadoras en la red, antes de ser
detectado y eliminado.
El principal problema de los gusanos no es que sean destructivos, que la
mayoría no lo son, sino que colapsan las redes de comunicaciones.
Rompedores de sistemas de protección:
_ Estos programas llevan a cabo distintas pruebas sobre sistemas,
generalmente remotos, para tratar de romper la seguridad de los mismos y
poder ejecutar accesos ilegales. Una de las pruebas que ejecutan
típicamente consiste en tratar de adivinar las palabras clave que tienen los
usuarios para acceder al sistema. Esta prueba, que se basa en distintos
tipos de programas de cifrado y un diccionario de palabras clave, compara
las del diccionario con las de los usuarios del sistema.
Bombardeo:
_ Consiste en llevar a cabo bombardeos masivos con peticiones de servicio o
de establecimiento de conexión a un servidor determinado. Estos ataques
masivos provocan que el servidor deniegue sus servicios a los clientes
legales y pueden llegar a bloquear al servidor. | |
| | | Contenido patrocinado
| Tema: Re: Clase 02 - Objetivos | |
| |
| | | | Clase 02 - Objetivos | |
|
Temas similares | |
|
| Permisos de este foro: | No puedes responder a temas en este foro.
| |
| |
| |
|