Está en la página 1de 69

1.- Conceptos básicos de un sistema operativo.

• Conceptos básicos de un sistema operativo:

¿Qué son?:

Los sistemas operativos son parte esencial de la vida cotidiana, prácticamente


todos los productos electrónicos (celulares, computadoras, TV’s, etc.) cuentan
con uno, pero ¿qué son y para qué sirven?

Los sistemas operativos son un conjunto de programas que gestionan todos


los recursos del HARDWARE y SOFTWARE.

El sistema operativo se encarga de gestionar y establecer comunicación entre


el CPU, la memoria, los dispositivos de almacenamiento, los periféricos, entre
otros; además, sirve como un enlace o canal entre el hardware y el usuario.

Por ejemplo, cuando nosotros escribimos un texto en un software de


ofimática, el sistema operativo se encarga de traducir las señales eléctricas
que escribimos mediante el teclado, y también, de otorgarle al programa los
recursos necesarios que requiera.

Por ejemplo, administra tanto la memoria que ocupa el programa, como el


proceso para guardar cambios del archivo.

• Procesos de un sistema operativo.

Cada vez que abrimos un programa en un dispositivo, se ejecutan procesos


para que el usuario pueda verlo en pantalla y usarlo adecuadamente.
La gestión de los procesos, así como su óptima ejecución, es una de las
funciones más importantes del sistema operativo.

Resumen.

El sistema operativo gestiona TODOS los recursos de un sistema


informático con el fin de usarlos óptima y eficazmente. Algunas de las
tareas que desempeña son:

- La gestión de dispositivos de entrada y salida (E/S o I/O)

- El almacenamiento.

- La seguridad

- La administración de procesos.

2.- Evolución de los sistemas operativos.

1.- Historia de las computadoras (video UVEG)

El diseño intuitivo le permite al usuario manejar el dispositivo con facilidad.

Están las siguientes generaciones de computadoras:

- Primera generación (1941):

Se crea la primera llamada ENIAC una máquina gigante y costosa que


se usaba para resolver cálculos matemáticos en el ámbito militar.
Funcionaba con tubos de vacío, esto producía un gran calor un excesivo
gasto energético. La información ingresaba a través de tarjetas
perforadas que contenían datos en código binario.

- Segunda generación ():

Se reemplazaron los tubos de vacío por transistores, lo cuál redujo el


tamaño, los costos y el gasto energético. También hubo un ligero
aumento en la velocidad.

La información comenzó a almacenarse en grandes cantidades gracias


al uso de cintas magnéticas que podían guardar hasta 5mb de datos, o
sea, un aproximado de 5 millones de caracteres.

En esta generación surgieron lenguajes de alto nivel como Fortran,


Algol, y COBOL. Gracias a ellos, se crearon los primeros sistemas
operativos que traducían las instrucciones a un lenguaje máquina.

Con estos avances, llegaron los primeros ordenadores comerciales.

- Tercera generación ()

El uso de los circuitos integrados permitió desarrollar miles de


componentes electrónicos en miniatura. Las computadoras se volvían
cada vez más pequeñas y rápidas.

En esta generación, nacieron sistemas operativos multiprogramados,


es decir, los programas coexisten en la memoria y cuando el usuario
requiere uno, el programa se ejecuta mientras los demás se quedan en
pausa. Esto daba la impresión de realizar procesos simultáneos.

- Cuarta generación ()
El uso de microprocesadores integró en un solo circuito TODOS los
elementos de la computadora, reduciendo aún más los costos.

En esta cuarta generación, la informática revolucionó el mundo, gracias


a las primeras computadoras comerciales, como Apple 1 y
posteriormente, la Apple 2 a color.

- Quinta generación ():

Nace la tecnología VLSI que significa: Very Large Scale Integration.

Para muchos es la generación actual.

Permite miles de transistores en un chip muy pequeño, aumentando


así, la potencia de las computadoras.

En esta generación surgen tecnologías basadas en la inteligencia


artificial y la robótica.

2.- Diapositivas UVEG:

- Historia de los sistemas operativos.

- Primera generación (1940-1955)

No existía el concepto de sistema operativo, se interactuaba


directamente con el hardware mediante lenguaje binario.

- Segunda generación (1956-1964)

- Nació el sistema batch, se limitaba solamente a la ejecución de


un programa cuando el anterior terminaba; los programas eran
leídos mediante cintas o tarjetas perforadas.
- El sistema batch se caracterizó por ser secuencial (el usuario no
intervenía en el proceso).

- Tercera generación (1965-1971)

Nacieron los sistemas operativos que marcaron el comienzo de


UNIX y de los sistemas que conocemos actualmente. Uno de los
primeros en desarrollarse fue Multics, el cuál aportó muchos
conceptos innovadores, pero en las versiones finales el sistema
contaba con un rendimiento muy pobre.

- Según el sitio oficial Multicians (2019), Multics era


vendido a instituciones educativas, grandes empresas y
clientes militares por aproximadamente $7,000,000 dólares.

- Cuarta generación (1972-1980)

- Apareció Unix, llamado originalmente UNICS


(Uniplexed Information and Computing Service), uno de
los sistemas operativos más importantes de la época.

- Unix fue desarrollado para permitir ser portable,


multitarea y multiusuario.

- Anteriormente, los sistemas operativos solo podían


realizar una tarea a la vez.

- En 1975 fue lanzado CP/M, un sistema operativo


enfocado en los microprocesadores Intel 8080. Este se
volvió uno de los sistemas más populares de la época.
- Nació el sistema operativo Apple DOS a finales de 1978.

- Surgió el sistema operativo QDOS basado en CP/M en


1979

- Quinta generación (1981-1980)

- MS-DOS evolucionó a partir de la compra (por 50,000


dólares) de una licencia QDOS desarrollada para
computadoras personales. Este sistema operativo es la base
de lo que hoy en día conocemos como Windows.

- Con la llegada de las agendas electrónicas o PDA’s,


apareció el sistema operativo móvil, EPOC, renombrado
después como Symbian.

- Newton OS, de Apple, fue lanzado al mercado en 1993


(era un messagepad.)

- IBM Simon, con su sistema operativo Datalight ROM-


DOS fue introducido al mercado en 1994 y es considerado
por algunos como el primer smartphone.

- En 1999 surgió el sistema operativo s40 de Nokia,


llegando a ser una de las plataformas más usadas del
mundo.

- En el 2007, llegó iOS

- En el 2008 nace Android, que actualmente es el sistema


operativo más utilizado.
3.- Estructura de un sistema operativo

Es posible clasificar los sistemas operativos de acuerdo a la forma en que se


estructuran sus componentes.

-Sistemas monolíticos -Sistemas de capas

-Microkernels -Modelo cliente-servidor

-Exokernels -Máquinas virtuales

La estructura de un sistema operativo se puede describir en términos


simples por la forma que está construido, es decir su ARQUITECTURA; o
por la manera en que se constituyen sus componentes y cómo interactúan
entre sí.

1.- Sistema monolítico:


No tienen una estructura definida. Está constituido por un único
programa principal que engloba toda la funcionalidad y servicios
necesarios. Este programa se integra por un conjunto de
procedimientos que interactúan entre sí, lo cuál garantiza
transparencia; pero al mismo tiempo, se vuelven difícil de mantener y
manejar.

- Algunos ejemplos de sistemas monolíticos son:

MS-DOS

Multics

OpenBSB

FreeBSD

Ubuntu

Debian

Android, entre otros.

Este tipo de sistemas presentan las siguientes ventajas y desventajas:

Ventajas:

- El procesamiento principal controla todo el sistema.

- Muestra una mejor eficiencia en procesamiento y velocidad.

Desventajas

- Son sistemas difícilmente adaptables y con muy poca o nula


escalabilidad
- Actualizaciones muy costosas (en tiempo y dificultad)

- Gran dependencia de los proveedores.

- Difíciles de depurar.

La escalabilidad es la capacidad de adaptación y respuesta a un


aumento de carga al sistema. Por ejemplo, el número de usuarios que
interactúan a la vez en un sitio web.

Los sistemas monolíticos están englobados en un solo programa. Este


se puede estructurar en capas internas de la siguiente manera:

- El programa principal se encarga de realizar las llamadas a los


procedimientos de servicio, que a su vez se ocupan de efectuar
llamadas a los procedimientos auxiliares.

Los procedimientos de servicio atienden las tareas principales del


sistema operativo, como la gestión de procesos, la administración de
la memoria, la administración de seguridad, etc.

Mientras que los procedimientos auxiliares se encargan de realizar


tareas utilitarias de los procedimientos de servicio.

2.- Sistema de capas:

Este tipo de sistemas presenta una serie de ventajas y desventajas, entre


las cuales se pueden mencionar las siguientes:

- Ventajas:

1.- Es modular, organizado y escalable.


2.- De simple mantenimiento.

3.- Facilidad de depuración para encontrar errores y fallas

- Desventajas:

1.- Arquitectura compleja, múltiples problemas para una división


de las funcionalidades.

2.- En cierto punto llega a ser ineficiente.

3.- Al estar basado en capas, implica un mayor gasto, ya que no


hay modo de saltar de la capa 5 a la 0 directamente (tiene que ser
en secuencia, 5,4,3…)

Un ejemplo de un sistema operativo por capas es THE


(Technische Hogeschool Eindhoven), el cuál se encuentra
organizado en 6 capas:

- Capa 0, administra el procesador.

- Capa 1, administra los recursos de la memoria y el disco.

- Capa 2, se encarga de la comunicación proceso-usuario,


en la cual, por cada proceso, se asigna una interfaz para el
usuario

-Capa 3, se encarga de toda la administración de los


dispositivos de entrada/salida o E/S (en inglés I/O), además
de guardar en buffers los flujos de información entre estos.

- Capa 4, contiene los programas del usuario.


- Capa 5, contiene la interfaz del usuario.

Otro ejemplo de esta estructura es el sistema operativo MINIX,


organizado en cuatro capas.

2 -. Microkernel

Se caracteriza por dividir el sistema operativo en fracciones muy


pequeñas, en las que solo una se ejecuta en modo núcleo (kernel, en
inglés), es decir, en modo privilegiado.

En un sistema con esta estructura, los errores que surjan no detienen o


congelan el dispositivo, por lo que el fallo no suele ser fatal.

Por poner un ejemplo, nos encontramos escribiendo un ensayo en


Word, y a la vez también estamos escuchando música en otra
aplicación. Entonces de repente surge un error en el controlador de
audio. Cuando se trata de un sistema microkernel únicamente
dejaríamos de escuchar la música; en cambio, una estructura monolítica
puede llegar al punto de detener a todo el sistema operativo.

El Kernel únicamente contiene los más esenciales componentes para el


funcionamiento del sistema operativo, como la abstracción de
procesos, administración de hilos, intercomunicación de procesos y
primitivas para la organización de la memoria.

Las primitivas, son las funciones más básicas de un sistema operativo


que tienen el objetivo de proveer mecanismos para algún servicio.
Por ejemplo, si se habla de primitivas de archivos, nos referimos a los
mecanismos que suministran para la lectura y escritura de datos.

Microkernel, al ejecutarse en modo usuario, los servers necesitan


comunicarse con el kernel para que realice los comandos necesarios y
es este mismo el que comprueba si tienen acceso a la E/S (Entrada y
Salida).

Existen dos tipos de privilegios.

Modo kernel: Es un modo privilegiado donde las operaciones


tienen acceso a las partes más esenciales del sistema operativo y el
código de ejecución está completo y sin restricciones.

Modo usuario: Es un modo restringido. En este caso, es necesario que


las operaciones pasen por servicios y/o servidores con interfaces de
ejecución muy delimitadas para poder realizar acciones controladas.

Este tipo de sistemas presenta una serie de ventajas y desventajas,


entre las cuales se pueden mencionar las siguientes.

Ventajas:

- Sencillez

- Mantenimiento simple

- Modular y extensible
- Depuración sencilla

- Seguridad.

- Desventajas

- Su desempeño es más bajo

- La mayoría son privativos (software propietario)

- El microkernel maneja Interrupciones, Proceso y Planificación (IPC)

- Algunos ejemplos de sistemas operativos con esta estructura son: Windows


XP (híbrido), Windows 7 (híbrido), Windows8 (híbrido), Windows 10
(híbrido), MacOS (híbrido), iOS (híbrido).

3.- Cliente servidor.

Su origen proviene del desarrollo de las redes, donde se necesitaba un modelo


que permitiera incremienmtar la escalabilidad, flexibilidad y la
interoperabilidad.

Esta estructura funciona de la siguiente manera:

El cliente envía una solicitud a un proceso del servidor y este procesa la


petición, realiza las tareas solicitadas por el cliente y finalmente, responde con
el resultado.
- Cabe aclarar que el modelo cliente-servidor es propio de los sistemas
distribuidos (un conjunto de componentes en red), también puede ocurrir el
caso de que el cliente y el servidor residan en la misma computadora

Algunos ejemplos de la estructura de cliente-servidor son:

Cliente

- Exploradores web: Chrome, Firefox, Opera, Edge y safari

- Cliente de basde de datos: SQL Management Studio, MySQL


workbench

Servidor

- Exploradores web: Apache, IIS, Ngix

- Servidor de base de datos: SQL Server, MySQL

Ventajas:

- Escalable y modular

- De fácil mantenimiento

- Si falla un servidor, no afecta a los demás.

- Desventajas

- El desempeño no siempre es el mismo

- Problemas de congestión de tráfico.


4.- Máquina virtual

El concepto de máquina virtual es muy sencillo: es poder


integrar varios sistemas operativos en un solo equipo llamado
anfitrión, host o hipervisor, mediante una réplica del hardware
actual.

Los recursos físicos se virtualizan, generando réplicas exactas; por lo


tanto, a cada sistema operativo le corresponderá una copia con recursos
reservados. Para lograrlo, se debe recurrir a un software.

Algunos ejemplos de máquina virtual son:

- Java Virtual Machine

- Microsoft Hyper-V

Este tipo de sistemas presenta una serie de ventajas y desventajas,


entre las cuales están:

- Ventajas:

- Una máquina virtual está aislada del anfitrión y de otras


máquinas virtuales, lo cual proporciona seguridad adicional

- Múltiples entornos pueden coexistir.

- Desventajas:

- Son más complejas de administrar


- Son menos eficientes, ya que no están interactuando
directamente con el hardware.

5.- Exokernel

En este sistema se separan la protección de recursos de la


administración.

En los sistemas operativos los recursos del hardware se presentan


mediante abstracciones.

La idea de este diseño, es que busca disminuir todo el posible número


de abstracciones posibles al programador y otorgarle la libertad de
elegir el nivel que requiere (bajo o alto).

Dos ejemplos de esta estructura son:

MIT AEGIS

MT XOK

- Un archivo virtual es una interfaz de una primitiva del sistema operativo, el


cuál provee mecanismos para su gestión.
4.- Tipos y clasificación de sistemas operativos.

Tipos de y clasificación de sistemas operativos.

Los sistemas operativos se pueden clasificar de dos formas distintas: por su


arquitectura y componentes (monolíticos, de capas, cliente-servidor, etc.); o de
a cuerdo a sus objetivos.

Según el propósito de cada sistema operativo, se pueden organizar en:


- Mainframe

- De servidor

- Multiprocesador

- Ordenador personal

- De tiempo real

- Empotrados

- Tarjeta inteligente

• Mainframe

Los usan principalmente las grandes organizaciones con el objetivo de


gestionar considerables cantidades de información. Son computadoras
con un muy alto nivel de procesamiento que a menudo, usan máquinas
virtuales con sistemas operativos especializados enfocados en ofrecer
un alto desempeño para el procesamiento de transacciones.

Entre sus usos más comunes se encuentra el comercio con grandes


cantidades de transacciones, usuarios simultáneos trabajando
remotamente o procesamiento por lotes.

- Un ejemplo de este sistema operativo es z/OS.

• De servidor:
Este tipo de sistemas operativos a menudo agregan software y son
optimizados para permitir operar en base a un modelo conocido como
cliente-servidor; en el que existen dos partes:

-Un cliente que solicita algún recurso a otra (cliente)

- Y esta otra, se le llama servidor, el cuál realiza y procesa la


información, devolviendo al cliente los datos ya procesados.

Muchos de estos sistemas operativos tienen la opción de


ejecutarse sin una interfaz gráfica, para enfocar todos sus
recursos a las solicitudes del cliente.

Estos sistemas operativos están alojados en dispositivos muy


variados. Desde computadoras personales comerciales, hasta
grandes computadoras como los mainframes. Se usan
principalmente en páginas web, servidores de transferencia de
archivos, aplicaciones web, etc.

Algunos ejemplos de estos sistemas operativos son:

-Windows Server

- CentOS

- Ubuntu Server

- Red Hat
• Multiprocesador:

También conocidos como ordenadores paralelos o


multicomputadoras.

Son sistemas operativos generalmente de servidor, pero con algunas


variaciones que les permiten usar varias CPU en un solo sistema;
además, poseen características para la comunicación y la conectividad.

Hoy en día, su uso está muy difundido, ya que muchos sistemas


operativos reconocidos actualmente se ejecutan en multiprocesadores.
Ejemplos son:

- Windows

- MacOS

- Linux

• Ordenador personal

Estos sistemas operativos son los más comunes y a menudo


representan una interfaz muy amigable para los usuarios.

Sus usos principales son la conectividad a internet, el procesamiento


de textos y hojas de cálculo. Algunos ejemplos de estos sistemas
operativos son:

- Windows 10

- Ubuntu 19.04

- macOS Mojave

• De tiempo real
Se caracterizan porque el tiempo real es su parámetro clave.

El sistema operativo debe realizar las acciones en un momento exacto,


de lo contrario se dañaría la producción.

Este tipo de sistemas operativos se usan en industrias de producción


automatizadas, fábricas de montaje, la industria militar, y en otras áreas
de aplicación similar.

Algunos ejemplos de estos sistemas operativos son:

- MaRTE OS

- LynxOS

- FreeRTOS

- RT-11

- QNX

Empotrados

Los sistemas operativos empotrados, también conocidos como


embebidos o integrados, son aquellos que NO son considerados como
computadoras y no permiten software instalado por un usuario.

Algunos ejemplos de este sistema operativo se encuentran en:

- Lavadoras
- Hornos de microondas

- Autos, etc.

De tarjeta inteligente.

Son los sistemas operativos más pequeños de todos, están


presentes en las tarjetas bancarias o incluso en tarjetas de menores
dimensiones, sin embargo, las funciones que pueden realizar son muy
limitadas.

Un ejemplo de este tipo de sistema operativo son las tarjetas de


crédito.

Bloque 2 tema 1.

- Definición y gestión de procesos.


Para obtener resultados, debemos de seguir una serie de pasos lógicos, que
nos ayuden a alcanzarlo.

Los procesos informáticos no son la excepción.

Las máquinas siguen una serie de pasos de forma rigurosa en donde cada paso
debe ser lógico y ordenado. Si un paso falta o no es claro, el proceso se
entorpece.

Las máquinas no piensan por sí mismas, por lo que, si no tienen las


indicaciones y materiales completos, el proceso simplemente no se culminará.

Definimos proceso como una secuencia de instrucciones o un conjunto de


acciones.

Los procesos que ejectua nuestra máquina son muchísimos. Desde que
encendemos el ordenador ya se están ejecutando procesos. Por ejemplo,
cuando la enciendes vez las primeras ventanas. También cuando ejecutamos
un archivo se ejecuta un proceso, cuando entramos al navegador se inicia otro
proceso, cuando abrimos otro documento se inicia otro…

El componente de hardware que interviene directamente en el desarrollo de


los procesos es el CPU (Unidad Central de Procesamiento), se trata de la
parte más importante de la computadora, ya que su función es interpretar las
instrucciones que le envía el sistema operativo, mediante operaciones
ariméticas y lógicas.
El CPU solo puede ejecutar un proceso a la vez.

Actualmente, la mayoría de computadoras están equipadas con circuitos


integrados que contienen varios CPU, llamados procesadores multinúcleo.
Esto les permite tener varios procesos en ejecución a la vez (un proceso por
cada CPU, o en realidad, por cada hilo)

- Cómo se organizan los procesos en la computadora?

Para eso, existe el sistema operativo. Este se encarga de planificar y


gestionar de manera ordenada los procesos, es decir, es el que determina la
secuencia de ejecución. De este modo, se optimiza su funcionamiento, ya
que cuando el usuario abre un documento, el sistema operativo ejecuta el
proceso necesario para que pueda realizar sus actividades; así mismo, cuando
el usuario cierra el programa, el sistema lo finaliza.

- Modelo de procesos

Para facilitar la comprensión de la administración de los procesos del


sistema operativo se usa una abstracción llamada modelo de procesos, la cual
representa todos los elementos que constituyen alguna instancia de
ejecución de un programa.

En los procesos, existe una estructura de datos llamado PCB (Process Control
Block o bloque de control del proceso) que ayuda al sistema operativo a la
administración y control de los procesos.

- El PCB generalmente se constituye del siguiente modo (la estructura no es


igual para todos los sistemas operativos, cada uno tiene un propio diseño que
puede variar):
Componente Descripción

ID del proceso: Es un identificador único del proceso en el OS

Contador del Es un apuntador a la dirección de la siguiente

programa: instrucción a ejecutar.

Estado: Es el estado del proceso actual.

Prioridad: Es usada por el OS para la planificación en el CPU

Registros de

propósito general: Es la estructura de datos relacionada con el proceso

Protección: Son los permisos del proceso y los recursos a los que
tiene acceso.

- Los contadores son el registro de una estructura de datos.

Cuando una instrucción es ejecutada, el contador realiza un incremento, de


modo que al ejecutar un nuevo ciclo de instrucción se pueda contar la
siguiente posición en la memoria.

Cada proceso tiene su propio PCB, creado por el sistema operativo.

Ciclo de vida de los procesos (Estados)


Así como existe un ciclo de vida para los seres vivos (aparición, desarrollo y
finalización), en informática encontramos un término semejante: El ciclo de
vida de los procesos. Este consta de tres etapas principales: la creación, la
ejecución y la terminación (de un proceso).

- Para representar el ciclo de vida de los procesos se usa el concepto modelo


de estados.

- Modelo de cinco estados.

En este caso, los procesos pueden presentarse en cinco estados, tal


como se describe a continuación:

1.- Creación. Es el estado del proceso al momento de ser creado.

2.- Listo y en espera de ser ejecutado. Cuando un proceso cuenta con


todos los recursos necesarios y está en espera de ser atendido.

3.- En ejecución. Estado en el que el proceso es atendido por el CPU


(recordar que “solo puede existir un proceso en ejecución al mismo
tiempo”)

4.- Bloqueado. Si en algún momento el proceso necesita algún recurso


del sistema, o requiere que suceda algún otro evento, se pone en
estado de bloqueo.

5.- Terminado. Cuando un proceso finalizó su ejecución o ya no es


requerido.
- Creación del proceso.

Antes de que un proceso se ejecute, se encuentra en la fase de


creación porque el sistema realiza las siguientes funciones:

a) Asigna un identificador llamado PID (Process Identifier).

El PID son números que pueden ir desde 0 hasta un valor


límite. Cuando se llega a ese límite, el sistema continúa
asignando los PID en los espacios que estén disponibles (es
decir, de procesos que se hayan cerrado ya).

Por ejemplo:

- Proceso 1. Se le asigna el PID de 100 que estaba


disponible.

- Proceso 2. Se le asigna el PID de 1568.

. Proceso 3. Se le asigna el PID de 18626.

b) Reserva todos los recursos que van a ser asignados al


proceso. Es decir, el sistema verifica que haya suficiente
memoria para ejecutarlo, que estén listos los procesos
alternos que se requieran, etc.

c) Asigna los elementos en la planificación de procesos


para atenderlo, es decir, registros, contadores y todo lo
necesario para la ejecución del proceso.

Prepara el estado inicial en el procesador (listo o


bloqueado) y la memoria que se requiera para cargar el
código del programa, antes de llevar a cabo las
instrucciones de este.

- Para que el sistema operativo inicie la creación de un


proceso, es necesaria una acción dada, las más generales
son las siguientes.

- Al momento de iniciar el sistema operativo.

- A partir de un proceso ya en ejecución mediante


una llamada al sistema.

- Mediante una acción del usuario por medio de una


interfaz gráfica (como cuando da clic en el ícono de
un programa); o a través de una terminal del
sistema operativo.

- Como parte de un procesamiento por lotes


automatizado por el sistema operativo, es decir, la
ejecución de uno o varios programas sin la
interacción del usuario. Por ejemplo, operaciones
realizadas por el sistema operativo, renderizado de
fotogramas de video, etc.

- Ejecución del proceso.

Sol Llaven especifica que, durante el ciclo de ejecución, los procesos pueden
presentarse en tres estados, tal como se describe a continuación:

Cuando un proceso está preparado para ser atendido, se dice que está
listo para la ejecución, cujando está siendo atendido, se dice que está en
ejecución, y cuando no espera recibir atención del procesador, se dice
que está bloqueado.

Es importante destacar que un proceso no recibe atención del


procesador cuando no puede continuar con la realización de sus
instrucciones, debido a que se encuentra en espera de una situación,
evento, instrucción u orden que no está bajo su control directo.

Como se ha mencionado anteriormente, el CPU solo puede ejecutar un


proceso a la vez, así que este debe pasar por los estados de ejecución y
bloqueado varias veces por segundo; es decir, se alterna su
ejecución, logrando la ilusión de realizar procesos simultáneos.

Sin esta técnica, no podríamos escuchar música mientras trabajamos en


un procesador de textos.

Terminación del proceso.

Según el ciclo de vida de un proceso, este debe ser diseñado


considerando que concluirá en algún momento.

Posteriormente, el sistema operativo debe encargarse de que los


recursos usados por el proceso anterior sean recuperados para poder
atender las necesidades de otros.

Sol Llaven puntualiza en las condiciones generales por las que un


proceso puede terminar, algunas de ellas son:
1.- Terminación normal, cuando el propio proceso, o el conjunto
de instrucciones del programa determinan que deben concluir su
ejecución.

2.- Por error crítico, cuando concluye la ejecución por un error


irrecuperable, es decir, cuando el programa detecta alguna
situación que le impida seguir con la ejecución normal.

3.- Al recibir la orden de terminación, cuando un tercer proceso


tiene los suficientes permisos o la autoridad para enviar señales a
otro.

Jerarquías

Si es el sistema operativo el que se encarga de crear, ejecutar y


terminar el proceso, ¿cómo afecta la interacción del usuario con el
sistema?

En general, existen dos modos de ejecución, proceso de usuario


y proceso de sistema (también llamado modo kernel o
privilegiado).

Los procesos en modo privilegiado son aquellos que forman


parte del propio sistema operativo y desempeñan funciones a las
que los usuarios no deben acceder ni realizar. Estos procesos
no tienen ninguna restricción en el núcleo o kernel del sistema
operativo y pueden manipular toda la memoria, además de
acceder a controladores de hardware.
Los procesos en modo usuario se ejecutan sin ningún tipo de
privilegio. Son los más comunes y se crean por el sistema
operativo como respuesta a una petición del usuario, como abrir
un procesador de textos, un navegador, etc.

La razón de que existan dos modos de ejecución es que, si los


procesos en modo usuario pudieran acceder a todos los recursos
del sistema operativo, este sería muy inestable.

Características Modo usuario Modo sistema (kernel


o privilegiado
Prioridad Variable (el sistema Generalmente en
operativo asigna la prioridad alta.
prioridad).
Privilegios Su acceso está No tienen ninguna
restringido. Cuando restricción.
necesita acceder a
recursos protegidos
hace un uso de los
servicios que provee el
sistema operativo,
limitados en
funcionalidad.
Acceso a la memoria Solo pueden acceder a Puede acceder a
zonas o direcciones de cualquier zona o
memoria que el sistema
operativo le asignó. dirección de memoria.
Ejemplos de programas Ejecución de un Ejecución del servicio
(procesos) procesador de textos. para la administración
de la memoria del
Ejecución de un sistema operativo.
navegador web
Ejecución del servicio
para la administración
de archivos del sistema
operativo.
Mecanismos de Es creado por el sistema Es creado por el sistema
creación del proceso operativo como operativo para
respuesta a alguna desempeñar las
interacción del usuario. funciones del mismo
sistema.
Bloque 2 tema 2

–Procesos ligeros (hilos)

Existe un componente de hardware llamado CPU, que se encarga de


interpretar las instrucciones del sistema operativo
para la ejecución del proceso.

Es muy común que las computadoras actuales contengan varios procesadores


y que existan varios procesos en ejecución a la vez
(uno por cada procesador/CPU), pero al principio no
fue así.

- El CPU es un tipo de procesador (circuito integrado) especial. En la


computación moderna, los términos procesador,
microprocesador y CPU son usados
indistintamente.

Con el paso del tiempo, las tecnologías asociadas a los procesadores


evolucionaron a partir de la ejecución de múltiples
procesos a la vez, introduciendo dos arquitecturas
clave:

- Arquitecturas multinúcleo

- Arquitecturas multiprocesador.

- Arquitectura multinúcleo (procesadores multinúcleo)

Es un sistema que contiene únicamente un solo circuito integrado o CPM


(chip multiprocesador), que incluye dos o más unidades de procesamiento
independientes llamados cores (núcleos). Este tipo de arquitectura es la más
común y la que se encuentra en la mayoría de computadoras comerciales.

Arquitectura multiprocesador

Son los sistemas que contienen dos o más circuitos integrados y que trabajan
en paralelo. Esta arquitectura también es llamada SMP (symmetric
multiprocessing o multiprocesador simétrico), es usada en su mayoría por
mainframes, supercomputadoras o servidores especializados.
- Actualmente existen tecnologías y técnicas que hacen a los procesadores
cada vez más eificientes. Este es el caso de las tecnologías HT
(HypeThreading) y SMT(Simultaneous Multithreading), que permiten
ejecutar múltiples hilos en el núcleo de un procesador.

Multinúcleo vs Multiprocesador

Multinúcleo:

Es un circuito integrado CMP, que incluye dos o MÁS unidades de


procesamiento independientes.

Son mejores en eficiencia de energía

No tan robusto como el sistema multiprocesador.

Ejecutan un programa más rápido porque los recursos del procesador


tienen que ser compartidos

Son más baratos

Multiprocesador:

Dos o más circuitos integrados y que trabajan en paralelo.

Están integrados por una gran cantidad de componentes y los circuitos que
los conforman generan más calor debido al incremento de su resistencia
eléctrica. Por esta razón es neceasrio incluir mejores sistemas de
enfriamiento con un mayor consumo de energía.

Intel Core i5, Amd ryzen dual, IBM Power 6

Intel Core i7

Intel Core i9 (8 núcleos)

Son más tolerantes a fallos, ya que si algún procesador no responde, los


demás siguen funcionando sin problemas.

Ejecutan múltiples programas mucho más rápido.

Requieren de más hardware, lo que se traduce en mayores costos.

IBM POWER9, Fujitsu SPARC64 V

Summit

Hilos.

Muchas aplicaciones necesitan realizar múltiples actividades a la vez.

Por ejemplo, cuando estamos trabajando con un procesador de textos.

Este está mostrando en pantalla lo que escribimos, mientras que


automáticamente busca errores ortográficos, guarda la última versión, además
de otras tareas simultáneas.

Si el procesador hiciera secuencialmente las tareas una por una, tardaría


muchísimo. Esto si el procesador solo usara un hilo principal. Llegaría el
caso en que la aplicación no respondiera y no podríamos escribir mientras
realiza otras funciones del programa.
Un proceso se define como una secuencia de instrucciones o un conjunto de
acciones, básicamente todos los procesos contienen un espacio de
direcciones y contienen al menos un hilo de la ejecución, conocido como hilo
principal.

- Qué es un hilo?

Los hilos (procesos ligeros) básicamente son hijos de un proceso


(proceso pesado). Son secuencias más pequeñas de instrucciones del
programa. En muchos sentidos, los hilos son parecidos a los procesos y
esta es la razón por la cuál también son llamados miniprocesos.

- Diferencia entre un proceso pesado y un hilo.

Proceso (proceso pesado) Hilo (proceso ligero)


Es un programa en ejecución. Es una parte de la ejecución de un
Ejemplo: si abres el bloc de notas, programa, en otras palabras, un
este programa pasa a estar en segmento de instrucciones.
ejecución.
La creación de un proceso pesado es La creación de un proceso ligero es
más tardado. mucho más rápido, depende mucho
del sistema operativo y los recursos
con los que cuente. Generalmente es
10 veces más rápido, e incluso puede
llegar a una proporción 100 veces
mayor.
La terminación de un proceso Al igual que la creación, la
pesado es más tardado. terminación de un proceso ligero es
mucho más rápida.
El cambio de contexto (context El cambio de contexto es mucho
switching), el cual quiere decir es un más rápido.
término utilizado en el ámbito de los
sistemas operativos y la
programación para describir el
proceso mediante el cual un sistema
operativo suspende la ejecución de
un proceso o hilo y luego reanuda la
ejecución de otro. requiere de más
tiempo al proceso pesado
Los procesos pesados están aislados Los procesos ligeros comparten la
y requieren de mecanismos del memoria con el padre, por lo tanto,
sistema operativo para la la comunicación es mucho más
comunicación, por lo tanto, necesitan rápida.
más tiempo y recursos.
Los procesos pesados son ejecutados Los procesos ligeros pueden leer,
independientemente y no pueden escribir y modificar la información
modificar información de otro de otro proceso ligero perteneciente
proceso. al mismo padre.
Modelo clásico.

Un modelo de procesos se basa en los conceptos de agrupación de recursos


y ejecución de hilos.

La manera más sencilla de analizar un proceso es con la agrupación de


recursos relacionados. Un proceso tiene un espacio de direcciones, que
contiene instrucciones y datos del programa, entre otros. Estos pueden incluir
los archivos abiertos por el proceso, los procesos hijos, alarmas pendientes,
manejadores, contadores, etc. y al reunir todos estos en un proceso se
administran con una mayor facilidad.

El otro concepto es la ejecución de un hilo. Este proceso tiene un contador


del programa el cual lleva el registro de la instrucción que se va a ejecutar a
continuación, y también los registros de sus variables de ejecución actuales.

¿Quién decide cómo se ejecutan los procesos?

El sistema operativo planifica los procesos, desde que va a ser ejecutado


y cuál será el siguiente. De esta manera se optimiza su funcionamiento.

- Cuando un proceso pesado es iniciado por el sistema operativo, por cada


uno de ellos también se crea una estructura de datos llamada PCB (Process
Control Block).

Mientras que cuando un hilo se abre, se usa otra estructura de datos llamada
TCB (thread control block).
Las estructuras ayudan al sistema operativo a la administración y control de
procesos.

Una estructura PCB se constituye generalmente por los siguientes elementos:

Componente Descripción
ID de proceso Es un identificador único del proceso
en el sistema operativo.
Contador del programa Es un apuntador a la dirección de la
siguiente instrucción a ejecutar
Estado Es el estado del proceso actual
Prioridad Es usada por el sistema operativo
para la planificación en el CPU
Registros de propósito general Es la estructura de datos relacionada
con el proceso
Protección Son los permisos del proceso y los
recursos a los que tiene acceso.
Procesos hijos Contienen información sobre los
procesos ligeros.

- Una estructura TCB (Thread Control Block) se constituye generalmente por


los siguientes elementos:

Componente Descripción
ID del hilo Es un identificador único del proceso
ligero en el sistema operativo.
Apuntador del PCB padre Es un apuntador a la estructura del
PCB (proceso pesado)
Contador del programa Es un apuntador a la dirección de la
siguiente instrucción a ejecutar.
Estado Es el estado actual del hilo
Prioridad Es usada por el sistema operativo
para la planificación del CPU
Registros de propósito general Es la estructura de datos relacionada
con el hilo.

- Estandar POSIX IEEE 10031.c

Si cada fabricante implementara sus propias versiones de hilos, estas podrían


diferir en gran medida una de otra, haciendo compleja su creación a los
desarrolladores de software. Es por eso que fue necesario crear un estándar.

Para los sistemas operativos basados en UNIX surgió IEEE 1003.1c

Existen bibliotecas o librerías que les permiten a los desarrolladores de


software el manejo de los hilos de una manera más sencilla, al otorgar una
interfaz (API) que les garantiza el acceso a diferentes funciones para su
manipulación.
Las librerías residen en el espacio del usuario o en el espacio que brinda el
kernel del sistema operativo.

API. Una API (Aplication Programming Interface), es un conjunto de


funciones, métodos, protocolos de comunicación, herramientas, entre otros,
para ser usada como paca de abstracción y ayudar en el desarrollo del
software.

Lezcano (2018) explica que una API muy usada es Pthreads, y que muchos de
los sistemas operativos la implementaron, por ejemplo, Solaris, Linux, Mac
OS x

- A continuación, el autor enumera una lista de algunas de las acciones dentro


de la biblioteca Pthreads:

- Crear, separar y unir hilos.

- Fijar u obtener los atributos de los hilos

- Manejar la exclusión mutua o mutex (mutual exclusión), garantizando


que el acceso a algunas partes del código sea exclusivo (solo un hilo
puede estar en un instante de tiempo dado ejecutando el código
mencionado.

- Garantizar la sincronización entre hilos.

Existen dos maneras principales de implementar hilos (procesos ligeros):

- Hilos a nivel usuario (ULT, User Level Threads)


- Hilos a nivel de kernel (KLT, Kernel Level Threads)

Cuando se implementan los procesos ligeros a nivel de usuario, la


planificación de los hilos le corresponde a la biblioteca de hilos del usuario: en
esta implementación los hilos no pasan al modo kernel, por lo tanto, este no se
entera de la existencia de ellos, para el kernel, los hilos siguien siendo solo
un proceso.

Esta implementación generalmente es usada en sistemas operativos que no


tienen soporte para hilos.

- Cuando la implementación de los hilos es en nivel kernel (KLT), toda la


administración y planificación de los hilos es realizada por este. El usuario
solo tiene acceso a una API (como Pthreads) para su creación.

Esta implementación tiene la ventaja de permitir ejecutar múltiples hilos


del mismo proceso en distintos CPU

- Actualmente existen más implementaciones, por ejemplo, la híbrida (KLT


+ ULT) y la emergente.

Diferencias entre ULT y KTL

ULT (User Level Thread) KLT (Kernel Level Thread)


Los hilos son creados a nivel usuario Los hilos son creados a nivel Kernel
La planificación lo realiza la La planificación y manejo lo realiza
biblioteca del usuario el kernel
El kernel no sabe de la existencia de Permite la ejecución de múltiples
los hilos, por lo tanto no se puede hilos de un mismo proceso en
hacer uso de múltiples procesadores distintos procesadores (cores)
para un solo proceso.
Cuando algún hilo del proceso se Cuando algún hilo del proceso se
bloquea, todo el proceso es bloquea, únicamente se suspende el
suspendido, incluyendo sus hilos. hilo.
Todos los sistemas operativos Solo los sistemas operativos con
pueden ejecutar esta implementación soporte de hilos pueden ejecutar
esta implementación.

En resumen

- A un proceso ligero también se le conoce como hilos o threads.

- Los procesos ligeros son pequeñas secuencias de instrucciones de un


proceso pesado.

- Un proceso pesado es un programa en ejecución.

- El IEEE 1003.1c es un estándar que les permite a los desarrolladores


de software el manejo de hilos de una manera más sencilla.

Tema 3 bloque 2

- Administración de memoria
La memoria se refiere al dispositivo que almacena datos. Es un
componente del sistema que tiene la función de recordar valores de
información para su uso posterior.

Lezcano (2018) explica que la memoria es un recurso de hardware y


parte fundamental de una computadora. Es dirigida en su totalidad por
el sistema operativo.

Según la cantidad disponible y dependiendo de las técnicas que se usen


para su administración, se podrán ejecutar un mayor o menor número
de procesos con una velocidad más alta o más baja.

Lezcano más adelante señala que la memoria se puede representar como


un arreglo de palabras o bytes, donde cada byte tiene una dirección
asociada, con la cual permite hacer una referencia y usarla
posteriormente.

- La memoria se organiza en una jerarquía de cuatro niveles (del nivel


0 al 3) con base en tres puntos clave:

Velocidad

Capacidad (almacenamiento/costo por bit)

Coste en base a la capacidad.

La capacidad de almacenamiento de la memoria digital se mide con


una unidad llamda bit. Un bit es la representación binaria, es decir,
solo tiene dos valores, 1 y 0.
No debe confundirse con byte. Los bytes están conformados por un
conjunto de 8 bits.

Una aproximación es:

8bits = 1letra/1 byte

Características de cada nivel de la memoria:

Nivel Nombre Características Ejemplos de


memoria
0 Registros del Extremadamente Componentes
procesador rápido de hardware
Extremadamente que están
limitado en integrados
capacidad directamente en
Extremadamente los
caro procesadores
1 Memoria caché Muy rápido Componentes
Muy poca de hardware
capacidad que
Muy caro generalmente
están ubicados
entre el CPU y
la RAM
2 Memoria RAM Rápido Componentes
de hardware
Poca capacidad clasificados en
Caro dos tipos
ROM Y RWM
3 Almacenamiento Lento Son los
secundario Alta capacidad componentes de
Barato hardware más
comunes en este
grupo se
encuentran los
HDD, los DCs.
DVDs,
memorias flash,
etc

- La memoria ROM significa memoria de solo lectura (read only


memory) y es usada por las compañías para introducir una serie de
programas ya instalados.

La memoria RWM significa memoria de lectura y escritura (read/write


memory), es donde residen todos los programas que son usados al
momento por el usuario.

Los dos grupos de memoria.


Nivel Nombre Grupo Características
del grupo
0 Registros del
procesador
1 Memoria caché Memoria Posee un tipo de
primaria, memoria volátil
también es (excepto la
2 conocida como memoria
memoria básica clasificada como
o principal. ROM)

El CPU accede
directamente a
estas memorias
3 Almacenamient Memoria Posee un tipo de
o secundario secundaria, memoria no
también volátil
conocida como
memoria El CPU no
auxiliar accede
directamente a
estas memorias.

- La memoria volátil se refiere a las memorias que pierden la


información al interrumpirse la señal eléctrica.
Mientras que las memorias no volátiles no necesitan de energía para
preservar la información.

En cuanto a la ubicación de la memoria, Lezcano (2018) apunta


que:

La memoria principal o básica, y los registros del procesador son


los únicos elementos de almacenamiento a los que la CPU tiene
accso, por eso resulta necesario que la información sobre la que
actúa la CPU, esté en alguna de esas partes. En registro o en
memoria principal.

Los datos y procesos que el CPU usa, o esté próximo a emplear, deben
ser alojados en la memoria principal.

Por ejemplo, si estamos usando un procesador de textos, el


administrador de memoria debe colocar todas las instrucciones y datos
que vaya a ocupar el programa en la memoria principal.

La memoria tiene un sistema abstracto de 2 operaciones:

Write

Esta operación se compone de dos partes, una clave y un valor.


La clave es necesaria ya que se asocia el valor al nombre clave
especificado.

Read

Esta operación necesita de una clave o un nombre, con la cual fue


asociada anteriormente a un valor.

El pseudocódigo se refiere a un modelo abstracto.

Generalmente a estas operaciones se accede mediante una API


(interfaz de programación de aplicaciones), que representa un
método para conseguir la comunicación entre los diferentes
niveles del software.

Un ejemplo de esto es cuando un procesador de textos se


comunica con una API del servicio de almacenamiento del
sistema operativo, para permitir guardar el documento en un
disco duro.

Espacio de direcciones.

El CPU y otros dispositivos necesitan de esquemas para poder almacenar,


modificar y obtener valores para su uso, es aquí donde entra el concepto de
espacio de direcciones.

Este término se refiere a un conjunto de direcciones de memorias


secuenciales, es decir, siempre se empieza desde la dirección 0 hasta la N-1,
donde N es la última posible.
Mientras que una dirección de memoria es un identificador único en
referencia a valores almacenados, donde generalmente los sistemas pueden
almacenar 1 byte (8bits)

A lo largo del tiempo, se han realizado múltiples esquemas para la memoria.

- El primero fue uno de los más simples y sencillos de manejar: la


máquina rasa. La desventaja de este tipo de esquema es que solo puede
cargar un programa en memoria a la vez y de forma continua.

Con el paso del tiempo, los esquemas evolucionaron y se


implementaron mejores formas de administrar el direccionamiento,
como el uso de la memoria virtual.

- Actualmente los sistemas modernos usan un tamaño de


almacenamiento de 16, 32 y 64 bits para la dirección de la memoria.

Supongamos que la capacidad de la memoria de un equipo es de 1MB.

1MB = 1024 KB = (1024 bytes * 1024 kb) = 1048576

Significa que el espacio contendría un total de 1048576 direcciones


disponibles, de la 0 a la 1048575 (N-1)

Memoria física vs virtual


- Memoria física: la memoria real que posee el equipo

- Memoria virtual: la memoria que necesita cada proceso.

En palabras de Lezcano (2018), la memoria virtual se usa porque en los


sistemas que implementan la multiprogramación es inviable mantener todos
los procesos cargados en memoria, sin embargo, únicamente los que estén
almacenados pueden competir por el procesador.

Esta aparente contradicción se resuelve con la memoria virtual. Como su


nombre lo indica, el sistema operativo simula tener más memoria. El
procedimiento es sencillo: se transfieren procesos a la memoria secundaria
(disco duro, SSD, etc.), considerando los que se ejecutan muy rara vez, u
ocasionalmente. Además de instrucciones de los procesos como son las
excepciones o el tratamiento de errores.

Memoria insuficiente.

Suponemos que la memoria tiene un tamaño de 1MB y existen dos


programas que deseamos abrir y mantener activos. El primer programa es un
navegador. Y el segundo es un reproductor de música. Debido a que la
suma de ambos es de 1.20MB, se necesita usar otro esquema: la memoria
virtual.
Como la memoria principal no tiene el espacio suficiente para colocar al
primer programa (navegador) y al segundo (reproductor de música), se crea un
conjunto de direcciones virtuales con el espacio suficiente, que en este caso
hipotético será de 1.2MB, con 1,258,290 direcciones.

Debido a que el procesador solo puede acceder a la memoria principal, se


cargan en la memoria física las instrucciones que se ocupan, dejando en la s
secundaria las que son usadas muy rara vez.

Este concepto parte de que en un sistema con un único procesador solo se


ejecuta una instrucción a la vez, de modo que, en un caso muy extremo, el
sistema operativo podría cargar en la memoria instrucción por instrucción
del programa, para después ejecutarlo.

Hay claras desventajas en esta técnica: las instrucciones en la memoria


secundaria son mucho más lentas que las contenidas en una RAM.

Si el procesador requiere algunas que no se encuentran en la RAM, entonces


el sistema tardará más tiempo en cargar las instrucciones de la memoria virtual
a la principal, porque solo desde ahí puede acceder a los datos.
6.- Archivos y directorios

1.- Sistemas de archivos

Los sistemas de archivos son uno de los aspectos más visibles y de mayor
facilidad de acceso para el usuario final, quien se encarga de administrar el
uso de la memoria secundaria (disco duro, CDs, DVD’s, etc.) en el sistema
operativo.

Los sistemas de archivos tienen funciones de gran importancia y utilidad para


el usuario, dos de ellas son:

- Proporcionar acceso a la información


- Proveer control de acceso

- Proporcionar acceso a la información:

Los sistemas de archivos deben implementar mecanismos para que las


aplicaciones puedan hacer uso de ellos.

Sol Llaven explica que las aplicaciones o programas donde se crean y


trabajan los archivos:

…suelen incluir al menos operaciones para almacenar, recuperar,


organizar y borrar la información. Estas operaciones deberán ser
rápidas, realizarse de la misma manera para todos los tipos de
archivos y lo más sencillas que resulte posible a fin de facilitar el
desarrollo de aplicaciones. También debe vigilarse que las funciones
para el mantenimiento del propio sistema de archivos sean tan
accesibles y sencillas como se puedan (2015)

-Control de acceso

Los sistemas de archivos también son los encargados de proteger la


información, es decir, deben contener mecanismos para que esta se mantenga
íntegra y que sea usada correctamente por los usuarios autorizados. Así
mismo, deben tener funciones para la contención de errores en las operaciones
a fin de mantener la integridad en la información.
- Diferencias entre un archivo y un directorio

- El archivo es una abstracción que básicamente representa una


colección de datos con un identificador, tiene un propósito y posee una
estructura, además de una nomenclatura.

- El directorio es un contenedor virtual de archivos (o de referencias


a ellos), además cuenta con una estructura muy sencilla que permite
soportar a estos y también a otros directorios. Su función es crear una
estructura jerárquica.

Estructura de archivos y directorios

Directorios Archivos
A la organización de carpetas donde La administración de los archivos en
se puede contener directorios los sistemas operativos suele
comunes, se les llama sistemas de realizarse en grupos de contenedores
archivo jerárquicos organizados jerárquicamente
llamados directorios o
subdirectorios.

- Cada directorio puede contener un número N de archivos (e incluso de otros


directorios), formando una especia de árbol jerárquico.

- PDF UVEG
Según su tipo, cada archivo tiene diferentes funciones, pero
independientemente de su extensión (.exe, .xls, .numbers, .lib, .jar, .rar, .zip,
etc.) siempre se codifican como archivos informáticos.

Para el sistema operativo ni la información que contiene un archivo ni su


extensión son relevantes porque la computadora debe tener algún método para
convertir la información en datos binarios. En consecuencia, todos los
archivos son considerados planos y las aplicaciones son las responsables de
generar las funciones y mecanismos necesarios para interpretar la información
que ellos mismos guardan.
Sin embargo, para un usuario es muy diferente un documento de Microsoft
Word (.docx) a una imagen (.jpg) de la última foto familiar; tampoco es lo
mismo una canción favorita (.mp3) que el video de algún momento importante
(.mov).

La información contenida en un archivo es generada por las aplicaciones para


su uso posterior, y estas son las responsables de tener los mecanismos y
funciones necesarias para interpretarla. Es por ello que las aplicaciones
determinan el formato en el que la información será representada.

Retomando el ejemplo del video anterior, el programa Paint es el encargado


de dar el formato y contenido con base en el tipo de archivo que se eligió
(.png) para que otras aplicaciones que tengan mecanismos para interpretar esta
extensión también lo puedan ejecutar.

Lo mismo sucedería con un archivo generado con un procesador de textos, por


ejemplo, el programa Microsoft Word se encargaría de darle un formato, y
sería responsable de que se pueda interpretar el contenido del archivo
nuevamente.

¿Entonces la extensión de un archivo no es relevante?

No, sin embargo, algunas aplicaciones tienen implementada una


verificación realizada por los programadores con base en la extensión,
para evitar posibles errores al abrir un archivo que no tenga un formato
correcto. Por ejemplo, si guardamos un documento de Word (.docx) y lo
cambiamos por un documento de Excel (.xlsx), al intentar abrirlo nos
mostrará una alerta de invalidez.

PDF 2 UVEG:

Los archivos y directorios tienen asociado un nombre de archivo


(filename) único en el sistema de archivos y este hace referencia a su
ubicación de almacenamiento. Además, la nomenclatura puede variar
entre los distintos tipos de sistemas. Hay reglas para indicar cómo se
representa la ubicación de un archivo o directorio. Revisa los siguientes
símbolos y su descripción:
Ruta 1 Los archivos y directorios tienen asociado un nombre de archivo
(filename) único en el sistema de archivos y este hace referencia a su
ubicación de almacenamiento. Además, la nomenclatura puede variar entre los
distintos tipos de sistemas. Hay reglas para indicar cómo se representa la
ubicación de un archivo o directorio. Revisa los siguientes símbolos y su
descripción:

Ruta (path). Se le conoce así a alguna ubicación única de un sistema de


archivos, y puede hacer referencia a un archivo, o algún directorio. Existen
dos tipos de rutas, las relativas y absolutas.

Rutas relativas y absolutas. Las rutas relativas (relative paths) son aquellas
que hacen referencia a una ubicación de un sistema de archivos en base al
directorio actual; mientras que las rutas absolutas (absolute path) señalan la
ruta completa de un archivo o directorio.
Ruta raíz. Se define como el directorio de mayor jerarquía, en otras palabras,
el inicio de la estructura de un sistema de archivos.
Directorios. Son los contenedores virtuales de los archivos.

Archivos. Son una abstracción de una colección de datos.

Nombre base. Hace referencia al identificador de un archivo.

Extensión. Es el sufijo de un archivo, indica el tipo de contenido o


información que incluye, además de determinar el programa que va a ser
usado al momento de abrirlo.

Volvemos a las diapositivas UVEG


- Atributos de archivos

El sistema de archivos necesita manejar algunos metadatos asociados,


dependiendo de la implementación del sistema de archivos. Los más comunes
y generales son:

Operaciones con archivos

Las operaciones dependen del tipo de archivos, sin embargo, hay algunas
comunes para todos:

Create: cuando en respuesta a una operación, se crea un archivo en un


sistema de archivos

Delete: elimina un archivo de un sistema de archivos

Open: cuando un proceso necesita usar un archivo se ejecuta esta


operación, creando estructuras de control para que otros procesos no
puedan acceder al archivo (un proceso solo puede escribir el archivo
a la vez).

Por ejemplo, en los siguientes casos:

- Cuando se va a leer el contenido de un archivo


- Cuando se va a cambiar el contenido de un archivo

Read: cuando se recupera la información de un archivo.

Write: cuando hay cambios en un archivo

Close: esta operación se ejecuta cuando un proceso ya no necesita usar


el archivo, permitiéndole a otros procesos acceder a él.

- Operaciones con directorios

Al igual que con los archivos, también existen operaciones semejantes para los
directorios:

Create: cuando en respuesta a una operación se crea otro directorio en


un sistema de archivos.

Delete: elimina un directorio de un sistema de archivos.

Add file: agrega un archivo en un directorio

Remove file: elimina un archivo de un directorio

Resumen de operaciones con archivos


Administración de un sistema operativo

- Administración del espacio de disco


Las memorias secundarias o auxiliares están compuestas por divisiones
llamadas particiones, donde en cada una existe un sistema de archivos
(NTFS, FAT, FAT32, EXT3, etc.).

Los espacios de un disco duro sin particionar no contienen un sistema de


archivos.

Los sistemas operativos tienen herramientas muy útiles para la administración,


desde las que ayudan a gestionar a los usuarios que pueden acceder al
sistema, hasta las que verifican y optimizan las memorias secundarias (disco
duro, SSD, etc.).

Las siguientes son herramientas con las que cuentan los sistemas operativos
para administrar el espacio en los discos del sistema, así como liberar espacio
y crear particiones:
Liberador del espacio en el sistema

Es una herramienta que primero identifica los archivos a eliminar de forma


segura. Antes de proceder con la depuración, se le pregunta al usuario si
este está de acuerdo e incluso puede elegir cuales borrar.

Particionado de discos

Esta es otra herramienta en que la mayoría de los casos se usa para crear
divisiones en el mismo disco, con el objetivo de organizar elementos o
archivos.

Por ejemplo, es posible contar con una partición principal para todos los
documentos y otra secundaria para realizar respaldos de nuestros archivos.

Respaldos de sistema de archivos

Un respaldo de seguridad es una copia de la información almacenada y se usa


para guardar los documentos, archivos, música, videos, etc. más importantes.
Si algún archivo se llegase a perder en un equipo sin respaldo, en muchos
casos puede resultar irremplazable, por ello es recomendable realizar copias
de seguridad constantemente.

La mayoría de los sistemas operativos actuales disponen de herramientas y


aplicaciones que permiten realizar copias de seguridad de una manera visual y
sencilla para el usuario final.

Desfragmentación del disco duro

Las particiones de un disco están divididas en varios fragmentos del mismo


tamaño llamado bloques, donde se almacena información.

Los archivos están almacenados en 1 o más bloques, los cuales siempre se


asignan completos. Es decir, aunque un archivo sea más pequeño que un
bloque, este se asigna en su totalidad, por lo que a veces se desperdicia
espacio.

Los archivos se reparten en los bloques disponibles (que se generan según


se van introduciendo o eliminando datos), y cuando un proceso necesita
usarlos, los buscará en todos los bloques donde se encuentren.

Al ser fragmentado, un archivo puede quedar dividido en varias partes y


ocupar más espacio del necesario.

Sin embargo, existen herramientas que se encargan de organizar la


información almacenada que pudiera haber quedado desaprovechada; además
de conseguir más espacio y lograr que las operaciones de entrada y salida sean
más rápidas.

También podría gustarte