Fundamentos Sistemas Operativos Parte 1 2°4°

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

FUNDAMENTOS DE SISTEMAS OPERATIVOS

INSTALACIÓN BÁSICA DE SOFTWARE


CURSO: 2° 4° C.S.T
E.E.T N°3117 “MTO. DANIEL OSCAR REYES”
1.1 Introducción
Una computadora moderna consta de uno o más procesadores, una memoria principal,
discos, impresoras, un teclado, un ratón, una pantalla o monitor, interfaces de red y otros
dispositivos de entrada/salida. En general es un sistema complejo. Si todos los programadores
de aplicaciones tuvieran que comprender el funcionamiento de todas estas partes, no escribirían
código alguno. Es más: el trabajo de administrar todos estos componentes y utilizarlos de
manera óptima es una tarea muy desafiante. Por esta razón, las computadoras están equipadas
con una capa de software llamada sistema operativo, cuyo trabajo es proporcionar a los
programas de usuario un modelo de computadora mejor, más simple y pulcro, así como
encargarse de la administración de todos los recursos antes mencionados. o. El sistema
operativo es la pieza fundamental del software y se ejecuta en modo kernel (también conocido
como modo supervisor). En este modo, el sistema operativo tiene acceso completo a todo el
hardware y puede ejecutar cualquier instrucción que la máquina sea capaz de ejecutar. El resto
del software se ejecuta en modo usuario, en el cual sólo un subconjunto de las instrucciones de
máquina es permitido. En particular, las instrucciones que afectan el control de la máquina o
que se encargan de la E/S (entrada/salida) están prohibidas para los programas en modo
usuario. En la siguiente imagen se demuestra la ubicación del Sistema Operativo dentro del
Sistema Informático en general.

1.1.2 Concepto de Sistema Operativo


Resulta difícil definir en la actualidad a un sistema operativo, aparte de decir que es el software
que se ejecuta en MODO KERNEL, este cumple dos tareas importantes:

1) Proporciona a los usuarios y programadores de aplicaciones un conjunto abstracto


de recursos simples, en vez de un complejo conjunto de recursos desnudos de
hardware.
2) Administra eficientemente los recursos de hardware.

1.1.2.1 Sistema Operativo como una Maquina Extendida o Máquina Virtual


La arquitectura (conjunto de instrucciones, organización de memoria, E/S y estructura
de bus) de la mayoría de las computadoras a nivel de lenguaje máquina es primitiva y compleja
de programar y utilizar, en especial para la entrada/salida de información. Para hacer este punto
más concreto, considere la forma en que se lleva a cabo la E/S de disco flexible mediante los
dispositivos controladores (device controllers) compatibles NEC PD765 que se utilizan en la
mayoría de las computadoras personales basadas en Intel (a lo largo de este libro utilizaremos
los términos “disco flexible” y “diskette” indistintamente). Utilizamos el disco flexible como un
ejemplo debido a que, aunque obsoleto, es mucho más simple que un disco duro moderno. El
PD765 tiene 16 comandos, cada uno de los cuales se especifica mediante la carga de 1 a 9 bytes
en un registro de dispositivo. Estos comandos son para leer y escribir datos, desplazar el brazo
del disco y dar formato a las pistas, así como para inicializar, detectar, restablecer y recalibrar el
dispositivo controlador y las unidades. Si el lector no comprende estos tecnicismos, no se
preocupe: ése es precisamente el punto, pues se
trata de algo bastante oscuro.

La abstracción es la clave para lidiar con la


complejidad. Las buenas abstracciones convierten
una tarea casi imposible en dos tareas
manejables. La primera de éstas es definir e
implementar las abstracciones; la segunda,
utilizarlas para resolver el problema en cuestión.
Una abstracción que casi cualquier usuario de
computadora comprende es el archivo: es una
pieza útil de información, como una fotografía
digital, un mensaje de correo electrónico almacenado o una página Web. Es más fácil lidiar con
fotografías, correos electrónicos y páginas Web que con los detalles de los discos, como en el
caso del disco flexible descrito. El trabajo del sistema operativo es crear buenas abstracciones
para después implementar y administrar los objetos abstractos entonces creados.

Este punto es tan importante que vale la pena repetirlo en distintas palabras. El sistema
operativo abstrae al usuario de la complejidad de administrar directamente el hardware y le
presenta un conjunto de directivas que le permiten al usuario (en particular a los
programadores) tener una visión más agradable y sencilla del sistema.

1.1.2.2 Sistema Operativo como Administrador de Recursos


Las computadoras modernas constan de procesadores, memorias, temporizadores,
discos, ratones, interfaces de red, impresoras y una amplia variedad de otros dispositivos. En la
perspectiva alterna, el trabajo del sistema operativo es proporcionar una asignación ordenada
y controlada de los procesadores, memorias y dispositivos de E/S, entre los diversos programas
que compiten por estos recursos.

Cuando una computadora (o red) tiene varios usuarios, la necesidad de administrar y


proteger la memoria, los dispositivos de E/S y otros recursos es cada vez mayor; de lo contrario,
los usuarios podrían interferir unos con otros. Además, los usuarios necesitan con frecuencia
compartir no sólo el hardware, sino también la información (archivos o bases de datos, por
ejemplo). En resumen, esta visión del sistema operativo sostiene que su tarea principal es llevar
un registro de qué programa está utilizando qué recursos, de otorgar las peticiones de recursos,
de contabilizar su uso y de mediar las peticiones en conflicto provenientes de distintos
programas y usuarios.

La administración de recursos incluye el multiplexaje (compartir) de recursos en dos


formas distintas: en el tiempo y en el espacio. Cuando un recurso se multiplexa en el tiempo, los
distintos programas o usuarios toman turnos para utilizarlo: uno de ellos obtiene acceso al
recurso, después otro, y así en lo sucesivo. Por ejemplo, con sólo una CPU y varios programas
que desean ejecutarse en ella, el sistema operativo primero asigna la CPU a un programa y luego,
una vez que se ha ejecutado por el tiempo suficiente, otro programa obtiene acceso a la CPU,
después otro, y en un momento dado el primer programa vuelve a obtener acceso al recurso.
La tarea de determinar cómo se multiplexa el recurso en el tiempo (quién sigue y durante cuánto
tiempo) es responsabilidad del sistema operativo. Otro ejemplo de multiplexaje en el tiempo es
la compartición de la impresora. Cuando hay varios trabajos en una cola de impresión, para
imprimirlos en una sola impresora, se debe tomar una decisión en cuanto a cuál trabajo debe
imprimirse a continuación.

El otro tipo de multiplexaje es en el espacio. En vez de que los clientes tomen turnos,
cada uno obtiene una parte del recurso. Por ejemplo, normalmente la memoria principal se
divide entre varios programas en ejecución para que cada uno pueda estar residente al mismo
tiempo (por ejemplo, para poder tomar turnos al utilizar la CPU). Suponiendo que hay suficiente
memoria como para contener varios programas, es más eficiente contener varios programas en
memoria a la vez, en vez de proporcionar a un solo programa toda la memoria, en especial si
sólo necesita una pequeña fracción. Desde luego que esto genera problemas de equidad y
protección, por ejemplo, y corresponde al sistema operativo resolverlos. Otro recurso que se
multiplexa en espacio es el disco duro. En muchos sistemas, un solo disco puede contener
archivos de muchos usuarios al mismo tiempo. Asignar espacio en disco y llevar el registro de
quién está utilizando cuáles bloques de disco es una tarea típica de administración de recursos
común del sistema operativo.

1.1.3 Tipos de Sistemas Operativos


Existen numerosas formas de clasificar los sistemas operativos, atendiendo a diferentes
criterios, las clasificaciones más usuales son las siguientes:

Según su propósito:
 Propósito General: se caracterizan por tener a múltiples usuarios
trabajando en un numero variado de aplicaciones.
 Propósito Específico: se utilizan en entornos donde se aceptan y
procesan, en poco tiempo, un gran número de sucesos y procesos, en
su mayoría externos al ordenador. Por ejemplo: control industrial,
controles de vuelos, equipamiento telefónico conmutado o en
simulaciones en tiempo real.
Según la Administración de Tareas:
 Monotareas: son capaces de manejar un programa o realizar una tarea
a la vez. Se los puede asociar a los primeros sistemas operativos que
aparecieron en la historia de la computación.
 Multitareas: En un sistema operativo multitarea, varios procesos se
pueden estar ejecutando aparentemente al mismo tiempo sin que el
usuario lo perciba. La gran mayoría de sistemas operativos actuales son
multitarea. Un sistema multitarea permite a la vez estar escuchando
música, navegando por Internet y realizando una videoconferencia. El
sistema operativo fracciona el tiempo de CPU y lo va repartiendo entre
los procesos que lo necesitan de la mejor forma posible.
Según el tipo de Administración de Recursos:
 Centralizados: son aquellos sistemas que utilizan recursos de una sola
computadora, es decir, su propia memoria, procesador, disco y
periféricos. Es decir, que un solo ordenador se encarga del
procesamiento. Se trata de un hardware de alto costo y de gran
potencia, que se pueden encontrar en empresas en la que se procesan
grandes cantidades de cálculos, información, etc., en la cual puede
haber un soporte Multiusuario. Los equipos más utilizados aquí son
MAINFRAMES (se encargan de todo el procesamiento de información
que solicitan las computadoras de los usuarios) y para los usuarios
particulares, las computadoras personales. Su principal desventaja es
que cuando el procesamiento era lento o tenía falla, hay que reemplazar
el equipo físico.
 Distribuidos: Permiten distribuir los trabajos, tareas o procesos entre
un conjunto de procesadores, que pueden estar en el mismo equipo o
en equipos distintos.
Según el número de Procesadores:
 Monoprocesador: puede ejecutar un proceso a la vez, por lo tanto,
trabaja con un solo procesador. La función principal, es alternar las
tareas que solicita el usuario de a una.
 Multiprocesador: Un sistema operativo multiproceso es aquel que
puede ejecutar varios procesos de forma concurrente (a la vez). Para
que se puedan ejecutar varios procesos a la vez es necesario tener un
sistema multiprocesador (con varios procesadores). El objetivo de
utilizar un sistema con varios procesadores no es ni más ni menos que
aumentar la potencia de cálculo y por lo tanto rendimiento del mismo.
El sistema va repartiendo la carga de trabajo entre los procesadores
existentes y también tendrá que gestionar la memoria para poder
repartirla entre dichos procesadores. Generalmente los sistemas
multiprocesador se utilizan en Workstation, servidores, etc. El realizar
un sistema operativo que pueda trabajar con varios procesadores de
forma concurrente es una tarea complicada y generalmente se diseñan
para que trabajen de varias formas:
 Forma Asimétrica: Se designa un procesador como el
procesador master (maestro) y los demás serán Slave (esclavos)
de este. En el procesador maestro se ejecuta el sistema
operativo y se encargará de repartir el trabajo entre los demás
procesadores esclavos. Este sistema tiene la ventaja de que es
más simple de implementar ya que se centraliza la gestión en un
procesador. Por el contrario, el que existan procesadores que
realicen distinto trabajo hace que el sistema no sea tan eficiente
como un sistema operativo que trabaje de forma simétrica.
 Forma Simétrica: En este tipo de sistema operativo todos los
procesadores realizan las mismas funciones. Es más difícil de
implementar, pero son más eficientes que los sistemas
operativos multiproceso asimétricos. El poder balancear la
carga de trabajo entre todos los procesadores existentes hace
que el tiempo de inactividad de los mismos sea mucho menor y
por lo tanto la productividad mucho más alta. Otra ventaja es
que, si un procesador falla, gracias al balanceo de carga, los
demás procesadores se hacen cargo de las tareas del
procesador que ha fallado.
Según el Tiempo de Respuesta
 En Tiempo Real: Son los que permiten que el ordenador dé una
respuesta inmediata tras lanzar un proceso.
 Tiempo Compartido: Son los que permiten que varios usuarios
individuales interactúen a la vez, de forma que cada usuario tenga la
sensación de que se le está atendiendo en exclusiva, aunque, en
realidad, cada tarea tiene un nivel de prioridad y se ejecuta en orden
secuencial.

1.1.4 Estructura del Sistema Operativo


El sistema operativo media entre el hardware y el resto del software. Para que los
procedimientos de gestión funcionen, el sistema operativo presenta una estructura ligeramente
distinta a la mayoría de programas. Podríamos decir que está formado por diferentes capas

1.1.4.1 El KERNEL del Sistema Operativo


El kernel es definido como el núcleo o corazón del sistema operativo, y se encarga
principalmente de mediar entre los procesos de usuario y el hardware disponible en la
máquina, es decir, concede el acceso al hardware, al software que lo solicite, de una manera
segura; y el procesamiento paralelo de varias tareas.

Además, este núcleo gestiona recursos mediante servicios de llamada al sistema operativo y
decide cuáles son los programas que harán uso de un dispositivo de hardware y cuál será su
duración, distribuyendo los recursos de la mejor forma, para que los componentes externos e
internos del ordenador puedan trabajar en conjunto. Otra de sus funciones, es la de administrar
la memoria de los procesos y programas en ejecución.

El kernel también se encarga de conceder permisos, facilitar la comunicación entre programas,


de gestionar las diversas labores de un dispositivo, manejar el procesador, periférico y
almacenamiento el sistema. Básicamente, el núcleo del sistema será el principal responsable del
funcionamiento de la máquina y la administración de sistema, desde su arranque.
1.1.4.2 Interfaz de Usuario
Una interfaz de usuario es un medio a través del cual una persona puede controlar un software
o hardware específico. Lo ideal es que las interfaces de usuario sean fáciles de usar para que la
interacción sea lo más instintiva e intuitiva posible. En el caso de los programas informáticos,
esto se denomina interfaz gráfica de usuario. Las interfaces también pueden clasificarse de la
siguiente manera:

 Interfaz de Línea de Comandos (CLI): Entre los lugares donde se utiliza la interfaz de
línea de comandos (Command Line Interface en inglés), se encuentran los ordenadores
DOS. El usuario ve una línea de comandos y un indicador que indica la posición actual.
La interacción sólo es posible mediante la introducción de comandos. La máquina los
procesa y, a continuación, muestra otra línea con una indicación de entrada. Este tipo
de sistema operativo está obsoleto. Las CLI han sido reemplazadas en gran medida por
las GUI.

 Interfaz Gráfica de Usuario (GUI): La interfaz gráfica de usuario (Graphical User


Interface) es la interfaz más utilizada en la mayoría de las aplicaciones de software
modernas. Se refiere a la ventana que contiene todos los elementos del software. La
interacción del usuario se produce a través del ratón y el teclado. También se pueden
utilizar botones y menús en la ventana del software. Esta ventana es la interfaz entre el
usuario y el software. Los elementos típicos, como las barras de herramientas, también
son comunes. Tales elementos también permiten un proceso algo similar a través de
diferentes sistemas operativos para interacciones comunes. El diseño de una interfaz
gráfica de usuario puede determinarse con la ayuda de un diseño de pantalla.
 Interfaz de Usuario Natural: La interfaz de usuario natural (Natural User Interface),
debe permitir una interacción del usuario lo más natural e intuitiva posible. Al mismo
tiempo, la interfaz real apenas es visible, por ejemplo, en una pantalla táctil. Con los
NUIs, la entrada del usuario se hace usando gestos y toques.

1.1.4.3 Sistema de Archivos


Este componente del sistema es el encargado de asignar el espacio a los archivos, administrar el
espacio libre dentro del disco y del acceso a los datos resguardados. El objetivo del sistema de
archivo, es ofrecer una estructura de la información guardada en la unidad de almacenamiento
permanente y la mayoría de los sistemas manejan su propio sistema de archivos. Dentro de las
tareas principales también se encuentran: el estructurar, organizar la escritura, la búsqueda,
lectura, almacenamiento, edición y eliminación de archivos.

1.1.4.4 Controladores de Dispositivos


Es el software encargado de permitir que el sistema interactúe con cada dispositivo de
hardware. Aunque no es necesario (en ciertas ocasiones), para el uso de un hardware
determinado, pero su uso es recomendado para evitar problemas, mejorar la seguridad y las
experiencias de usuario.

1.1.5 Funciones Principales del Sistema Operativo


A continuación, vamos a enumerar las principales funciones de los sistemas operativos:

1) Políticas de reparto de tiempo de proceso. Controla la ejecución de varios procesos


a la vez, repartiendo los recursos del ordenador (procesador, memoria, espacio de
almacenamiento…) a los distintos programas que se están ejecutando.
2) Acceso a los dispositivos de Entrada/salida: hay varios tipos de dispositivos de E/S,
cada uno utiliza su propio conjunto de instrucciones o secuencia de comandos.
Controla y organiza los dispositivos conectados al sistema. El sistema operativo
oculta los detalles particulares de cada dispositivo proporcionando una interfaz
uniforma para que los usuarios accedan a ellos.
3) Control de recursos. Coordinar y manipular el hardware del sistema informático.
Se encarga del funcionamiento coordinado de todos los componentes para que
funcionen como una sola máquina.
4) Manipula y controla el Sistema de Archivos: de disco permitiendo guardar la
información en las unidades de almacenamiento en forma de ficheros y
directorios. El sistema de archivos es el aspecto más visible del sistema operativo,
ya que proporciona una estructura lógica para almacenar, crear, eliminar,
lectoescritura de archivos.
5) Gestiona y mantiene usuarios y grupos de usuarios pudiendo establecer
privilegios y restricciones a las diferentes cuentas individuales o grupales.
6) Ofrece una base estándar sobre la que ejecutar otros programas permitiendo
diseñar software de aplicación sin necesidad de tener en cuenta el hardware
particular de cada sistema.
7) Detecta, informa y da respuesta a los errores que se produzcan.
8) Protección y Seguridad: cuando se ejecutan varios programas concurrentemente,
se debe evitar que uno interfiera con otro, ya que pueden provocar daños graves
al sistema en general. También permite un acceso controlado y protege los
recursos del sistema.
9) Contabilidad: lleva a cabo los registros o estadísticas del uso de los diferentes
recursos de la computadora y monitoriza los parámetros, tal como la productividad
o el tiempo de respuesta, que luego son utilizados para el RENDIMIENTO DEL
SISTEMA INFORMÁTICO.
1.1.6 Conceptos Esenciales de los Sistemas Operativos
Los sistemas operativos proporcionan ciertos conceptos básicos y abstracciones como los
PROCESOS, ESPACIOS DE DIRECCIONES y ARCHIVOS, bases para comprender el funcionamiento
del mismo dentro de un sistema informático:

1.1.6.1 Procesos
Un concepto clave en todos los sistemas operativos es el proceso. Un proceso es en
esencia un programa en ejecución. Cada proceso tiene asociado un espacio de direcciones, una
lista de ubicaciones de memoria que va desde algún mínimo (generalmente 0) hasta cierto valor
máximo, donde el proceso puede leer y escribir información. El espacio de direcciones contiene
el programa ejecutable, los datos del programa y su pila. También hay asociado a cada proceso
un conjunto de recursos, que comúnmente incluye registros (el contador de programa y el
apuntador de pila, entre ellos), una lista de archivos abiertos, alarmas pendientes, listas de
procesos relacionados y toda la demás información necesaria para ejecutar el programa. En
esencia, un proceso es un recipiente que guarda toda la información necesaria para ejecutar un
programa

Por ahora la manera más fácil de que nos demos una buena idea de lo que es un proceso
es pensar en un sistema de multiprogramación. El usuario puede haber iniciado un programa de
edición de video para convertir un video de una hora a un formato específico (algo que puede
tardar horas) y después irse a navegar en la Web. Mientras tanto, un proceso en segundo plano
que despierta en forma periódica para comprobar los mensajes entrantes puede haber
empezado a ejecutarse. Así tenemos (cuando menos) tres procesos activos: el editor de video,
el navegador Web y el lector de correo electrónico. Cada cierto tiempo, el sistema operativo
decide detener la ejecución de un proceso y empezar a ejecutar otro; por ejemplo, debido a que
el primero ha utilizado más tiempo del que le correspondía de la CPU en el último segundo.
Cuando un proceso se suspende en forma temporal como en el ejemplo anterior, debe
reiniciarse después exactamente en el mismo estado que tenía cuando se detuvo. Esto significa
que toda la información acerca del proceso debe guardarse en forma explícita en alguna parte
durante la suspensión, en las llamadas tablas de procesos.

Un proceso puede crear uno o más procesos aparte (conocidos como procesos hijos) y
estos procesos a su vez pueden crear procesos hijos, llegamos rápidamente la estructura de
árbol de procesos. Los procesos relacionados que cooperan para realizar un cierto trabajo a
menudo necesitan comunicarse entre sí y sincronizar sus actividades. A esta comunicación se le
conoce como comunicación entre procesos.

1.1.6.2 Espacios de Direcciones


Cada computadora tiene cierta memoria principal que utiliza para mantener los
programas en ejecución. En un sistema operativo muy simple sólo hay un programa a la vez en
la memoria. Para ejecutar un segundo programa se tiene que quitar el primero y colocar el
segundo en la memoria. Los sistemas operativos más sofisticados permiten colocar varios
programas en memoria al mismo tiempo. Para evitar que interfieran unos con otros (y con el
sistema operativo), se necesita cierto mecanismo de protección. Aunque este mecanismo tiene
que estar en el hardware, es controlado por el sistema operativo.

La administración del espacio de direcciones de los procesos está relacionada con la


memoria, es una actividad de igual importancia. Por lo general, cada proceso tiene cierto
conjunto de direcciones que puede utilizar, que generalmente van desde 0 hasta cierto valor
máximo. En el caso más simple, la máxima cantidad de espacio de direcciones que tiene un
proceso es menor que la memoria principal. De esta forma, un proceso puede llenar su espacio
de direcciones y aun así habrá suficiente espacio en la memoria principal para contener todo lo
necesario.

Sin embargo, en muchas computadoras las direcciones son de 32 o 64 bits, con lo cual
se obtiene un espacio de direcciones de 232 o 264 bytes, respectivamente. ¿Qué ocurre si un
proceso tiene más espacio de direcciones que la memoria principal de la computadora, y desea
usarlo todo? Hoy en día existe una técnica llamada memoria virtual, como se mencionó antes,
en la cual el sistema operativo mantiene una parte del espacio de direcciones en memoria
principal y otra parte en el disco, moviendo pedazos de un lugar a otro según sea necesario.

1.1.6.3 Archivos
Otro concepto clave de casi todos los sistemas operativos es el sistema de archivos.
Como se dijo antes, una de las funciones principales del sistema operativo es ocultar las
peculiaridades de los discos y demás dispositivos de E/S, presentando al programador un
modelo abstracto limpio y agradable de archivos independientes del dispositivo. Sin duda se
requieren las llamadas al sistema para crear los archivos, eliminarlos, leer y escribir en ellos.

Para proveer un lugar en donde se puedan mantener los archivos, la mayoría de los
sistemas operativos tienen el concepto de un directorio como una manera de agrupar archivos.
s. Por ejemplo, un estudiante podría tener un directorio para cada curso que esté tomando (para
los programas necesarios para ese curso), otro directorio para su correo electrónico y otro más
para su página de inicio en World Wide Web. Así, se necesitan llamadas al sistema para crear y
eliminar directorios. También se proporcionan llamadas para poner un archivo existente en un
directorio y para eliminar un archivo de un directorio. Las entradas de directorio pueden ser
archivos u otros directorios. Este modelo también da surgimiento a una jerarquía (el sistema de
archivos), como se muestra en la siguiente imagen:

Para especificar cada archivo dentro de la jerarquía de directorio, se proporciona su


nombre de ruta de la parte superior de la jerarquía de directorios, el directorio raíz. Dichos
nombres de ruta absolutos consisten de la lista de directorios que deben recorrerse desde el
directorio raíz para llegar al archivo, y se utilizan barras diagonales para separar los
componentes, como por ejemplo la ruta para el archivo CS101 es
/Docentes/Prof.Brown/Cursos/CS101.

En palabras más sencillas, un sistema de archivos es el sistema de almacenamiento de


un dispositivo de memoria, que estructura y organiza la escritura, búsqueda, lectura,
almacenamiento, edición y eliminación de archivos de una manera concreta. El objetivo
principal de esta organización es que el usuario pueda identificar los archivos sin lugar a error
y acceder a ellos lo más rápido posible. Pero, antes de poder leer o escribir en un archivo se
debe abrir y en ese momento se comprueban los permisos. Si está permitido el acceso, el
sistema devuelve un pequeño entero conocido como descriptor de archivo para usarlo en las
siguientes operaciones. Si el acceso está prohibido, se devuelve un código de error, provocando
la inaccesibilidad a un usuario no autorizado, por ello también este sistema ofrece una
protección permanente al acceso de los datos.

También podría gustarte