Download Generalidades acerca de los sistemas operativos Hoy en día

Document related concepts

Anillo (seguridad informática) wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Sistema operativo wikipedia , lookup

Proceso de arranque en Linux wikipedia , lookup

Arquitectura de Windows NT wikipedia , lookup

Transcript
Generalidades acerca de los sistemas operativos
Hoy en día muchas personas, usan las computadoras de una forma muy fácil,
muchos
incluso
creen
que
la
máquina
tiene
incorporada
todas
las
potencialidades con las que están habituados a trabajar. En realidad eso no es
así ya que debajo de todas esas facilidades está presente un agente que nos
facilita las cosas y que convierte a la computadora en un ente mucho más
poderoso de lo que realmente es, en palabras técnicas, ese agente convierte la
computadora real en una computadora virtual mucho más poderosa.
¿Quién es ese agente y cómo actúa?
9 A la primera pregunta se responde de forma obvia: “el agente es el
sistema operativo”.
9 Responder la segunda pregunta es un poco complicado y solo se
podrá contestar una vez que se hayan estudiado todas y cada una
de las complejas operaciones que realiza un sistema operativo. El
sistema de enseñanza con el que usted actúa en este momento
pretende dar una pequeña ayuda para resolver esta interrogante.
Los sistemas operativos constituyen una parte importante de cualquier sistema
de cómputo, los cuales se pueden ver como un conjunto de capas que van
desde lo más básico o de bajo nivel (el hardware), hasta lo más cercano a los
usuarios o del alto nivel (el software de aplicación). Por encima de todo eso
están los usuarios (figuras 1 y 2).
Usuario
Programas de
Aplicación
Sistema Operativo
Hardware
Figura 1. Sistema de cómputo estructurado por capas.
Esta concepción, muy frecuente en los diseños, permite que las capas
superiores se nutran de los servicios que brindan las capas inferiores, de forma
que cada una se especialice en lo que realmente tiene que hacer, sin
involucrarse en detalles complejos que son resueltos por sus antecesores.
Usuario 1
Compilador
Usuario 2
Ensamblador
Usuario 3
Editor de texto
…
…
Usuario n
Sistema de base
de datos
Programas de aplicaciones y sistema
Sistema operativo
Hardware
Figura 2. Sistema de cómputo estructurado por capas.
Los sistemas operativos son grandes y complejos, por ese motivo se programan
como piezas separadas de software (módulos) que tienen funciones específicas.
Las partes interactúan entre sí para lograr alcanzar el objetivo común: hacer más
fácil el uso de los recursos del sistema y mejorar la eficiencia con que se usan.
Definición:
Un sistema operativo es un programa que manipula los recursos de la
computadora los cuales pueden ser de hardware o de software.
Algunos tipos de sistemas operativos se diseñan para ser eficientes otros para
ser fáciles de usar y otros tratan de lograr ambas cosas estableciendo un
determinado compromiso.
Estructura y operaciones de los sistemas operativos.
Uno de los aspectos más importantes de los sistemas operativos actuales es la
capacidad de ejecutar varios programas a la vez, lo que se conoce con el
nombre de multiprogramación. Para poder ejecutar un programa se necesita
tenerlo en memoria, una posible solución es la que se muestra en la figura 3,
aunque en realidad no es necesario que el programa esté completamente
cargado en la memoria (aunque sí una parte de él). Esa idea de no tener el
programa completo cargado en memoria permite hacer creer que la memoria es
mayor de lo que realmente es y se puede ver en el mapa de memoria.
0
Sistema operativo
Trabajo 1
Trabajo 2
Trabajo 3
512K
Trabajo 4
Figura 3. Varios trabajos en memoria permiten multiplexar el procesador.
Basado en el análisis anterior los sistemas operativos pueden clasificarse
como:
a) Multiprogramados. Ejemplos: Unix, Windows.
b) Monoprogramados. Ejemplo: MS-DOS.
La multiprogramación se logra compartiendo el procesador, o sea, en
realidad solo un trabajo se ejecuta a la vez y se intercambia el procesador
entre todos, dándonos la idea que todos se están ejecutando al mismo
tiempo.
Hoy en día es muy común que una computadora tenga más de un
procesador. El concepto de usar esos procesadores al mismo tiempo no
debe confundirse con la multiprogramación ya que en el primer caso se tiene
una ejecución paralela real y en el segundo una ejecución “paralela” virtual.
Los sistemas operativos que permiten el uso simultáneo de más de un
procesador se denominan de multiprocesamiento, basado en ese análisis los
sistemas operativos pueden ser:
a) Multiprocesamiento. Windows XP, Unix.
b) Monoprocesamiento. Windows 95.
Operación Dual
Debido a que el sistema operativo es un programa más (que necesita
determinadas prioridades) es importante comprender el modo de operación
dual.
La mayoría de las computadoras actuales permiten varios modos de operación
(al menos dos) y el sistema operativo aprovecha esa oportunidad para distinguir
entre dos modos (figura 4):
•
Modo usuario.
•
Modo kernel (también se conocen como modo sistema y modo
supervisor).
Los programas de usuario actúan siempre en modo usuario y cuando necesitan
hacer operaciones que se consideran privilegiadas le piden al sistema operativo
que las haga, para lo cual se cambia a modo kernel y las efectúa, dando de esa
forma una protección efectiva a los recursos.
Cuando se enciende una computadora, comienza el proceso de inicialización
del sistema operativo (bootstrap), el hardware de la computadora está en ese
instante en modo kernel, mas adelante los modos se irán intercambiando y el
SO asume la responsabilidad de efectuar los intercambios dándole las
instrucciones precisas al hardware. Esta forma de operación permite al SO
proteger a los usuarios y protegerse a sí mismo.
Proceso de usuario
Llamada al
sistema
Ejecutando procesos
de usuario
Regreso de la llamada
al sistema
Modo
usuario
Modo
Kernel
Kernel (núcleo)
Función del sistema
Figura 4. Transición de modo de operación.
Visión general.
En general, el SO lleva a cabo las siguientes tareas:
•
Manipulación del procesador. Para que un programa pueda llevar a
cabo la tarea para la cual fue diseñado precisa tiempo del procesador,
este último puede ser uno solo o pueden ser varios pero en cualquier
caso habrá que compartirlo para poder realizar diversas tareas a la vez.
Es importante destacar que un programa es un ente pasivo ya que desde
que se escribe, ya sea en una hoja, en la pizarra o se guarda en una
unidad de almacenamiento, existe como tal pero no realiza tarea alguna.
Por ese motivo los sistemas operativos usan el concepto de proceso
definido como un programa en ejecución, debe observarse que un
proceso necesita recursos para poder ejecutarse, entre ellos, el
procesador. El SO será el responsable de:
o Crear y eliminar los procesos (de usuarios y del propio SO).
o Suspender y volver a activar los procesos.
o Facilitar mecanismos para sincronizar procesos que cooperan
entre sí.
o Facilitar mecanismos para que los procesos se comuniquen
entre sí, etc.
•
Manipulación de la memoria. Para que los procesos se puedan ejecutar
precisan de memoria para almacenarse a sí mismo y a sus datos, como
la memoria no es infinita y se quieren ejecutar muchos procesos a la vez,
algunos de los cuales pueden rebasar el límite de memoria física, habrá
que disponer de mecanismos que ayuden a repartirla de forma efectiva.
El SO es responsable de:
o Conocer las partes de la memoria que están disponible y
ocupadas.
o Decidir cuáles procesos (o partes de ellos) deben ser cargados
en la memoria y cuáles deben ser desalojados de la memoria
(puede ser que hacia dispositivos externos), etc.
•
Manipulación de los equipos externos de almacenamiento. Para poder
almacenar programas y datos de forma permanente, el SO usa el
concepto de archivo abstrayéndose de sus particularidades físicas, el
módulo
denominado
Sistema
de
Archivo
se
encarga
de
esa
responsabilidad.
•
Protección y seguridad. Un sistema de cómputo tiene muchos usuarios y
existen muchos procesos que se ejecutan a la vez, el SO es el
responsable de proteger a todos estos elementos. Bajo el concepto de
protección se engloba al conjunto de mecanismos que permiten controlar
el acceso de usuarios y procesos a los recursos del sistema, mientras la
seguridad se refiere a la defensa ante los eventos externos tales como
virus, etc.