0% encontró este documento útil (0 votos)
21 vistas97 páginas

Laboratorio de Sistema Operativo III

Un sistema operativo (S.O.) es un software que gestiona los recursos de hardware y software de un dispositivo informático, actuando como intermediario entre el usuario y el hardware. Sus funciones incluyen la administración de dispositivos, gestión de memoria, gestión de archivos y control de rendimiento, entre otras. Existen diferentes tipos de S.O. según su estructura, número de usuarios, procesadores y licencia, como Windows, Linux y macOS.

Cargado por

r.n.correa2402
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas97 páginas

Laboratorio de Sistema Operativo III

Un sistema operativo (S.O.) es un software que gestiona los recursos de hardware y software de un dispositivo informático, actuando como intermediario entre el usuario y el hardware. Sus funciones incluyen la administración de dispositivos, gestión de memoria, gestión de archivos y control de rendimiento, entre otras. Existen diferentes tipos de S.O. según su estructura, número de usuarios, procesadores y licencia, como Windows, Linux y macOS.

Cargado por

r.n.correa2402
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Laboratorio de Sistema

Operativo III
¿Qué es S.O.?

 Es un software que administra y maneja los recursos de hardware y


software de un dispositivo informático.
 Responsable de administrar y controlar todas las actividades y el uso
compartido de los recursos de la computadora entre las diferentes
aplicaciones en ejecución.
 Un software de bajo nivel que incluye todas las funciones básicas como
gestión del procesador, gestión de memoria, gestión de archivos, etc.
 Actúa principalmente como un gobierno para su sistema que tiene diferentes
departamentos para administrar diferentes recursos.
 Algunos ejemplos son Linux, Unix, Windows 11, MS DOS, Android, macOS e iOS.
COMPONENTE DE UN SISTEMA DE
COMPUTO

USUARIO USUARIO USUARIO USUARIO


1 2 3 N

COPILADOR ENSAMBLADOR EDITOR DE TEXTO SISTEMA DE BASE


DE DATOS

HARDWARE
📊 Idea principal del esquema
El diagrama muestra una estructura en capas:
Usuarios

Aplicaciones / Programas
✅ Ejemplo práctico
↓ Cuando un alumno abre Word para escribir un
Sistema Operativo
↓ trabajo:
Hardware [Link] usuario abre Word.
Esto significa que: [Link] (aplicación) solicita recursos.
[Link] usuario usa aplicaciones [Link] sistema operativo gestiona memoria y CPU.
[Link] aplicaciones usan el sistema operativo [Link] hardware ejecuta las instrucciones.
[Link] sistema operativo controla el hardware
CONCEPTOS BASICOS

Un sistema operativo actúa como intermediario entre el usuario de una


computadora y el hardware. En resumen, es una interfaz entre el hardware
y el usuario.
El propósito de un sistema operativo es proporcionar un entorno en el
que un usuario pueda ejecutar programas de manera cómoda y
eficiente.
Un sistema operativo es el software que gestiona el hardware y el software
de una computadora. El hardware debe proporcionar los mecanismos
adecuados para garantizar el correcto funcionamiento del sistema y evitar
que los programas de usuario interfieran con su correcto funcionamiento.
El sistema operativo es un programa que se ejecuta en todo momento en la
computadora (generalmente llamado kernel), y todos los demás son
programas de aplicación.
Se ocupa de la asignación de recursos entre programas, por ejemplo,
memoria, procesadores y dispositivos de entrada/salida.
ERA DESARROLLO EJEMPLO
1956 El primer sistema operativo fue GN-NAA E/S GM-NAA (1956)
I/O en 1956 de Genera; Motors.
década de 1960 IBM desarrolló un sistema de tiempo OS/360, DOS/360 y TSS/360
compartido TSS/360
década de 1970 Unix popularizó la simplicidad y la Unix (1971), CP/M (1974)
multitarea; surgimiento de computadoras
personales con sistemas operativos
básicos.
década de 1980 Los sistemas operativos basados en GUI Apple Macintosh (1984),
ganaron terreno; las funciones de red se Windows (1985)
volvieron estándar.
década de 1990 Surgió Linux de código abierto; las GUI en Linux (1991), Windows 95
Windows y Mac OS mejoraron. (1995)
Década de 2000- 2000-Presente Los sistemas operativos iOS (2007), Android
móviles dominaron y las tecnologías de
nube y virtualización hicieron avanzar la
informática.
Características de los S.O.

 Administración de dispositivos: se le denomina controlador de entrada/salida, y decide


qué proceso accede al dispositivo, cuándo y durante cuánto tiempo.
 Gestión de archivos: asigna y desasigna los recursos y también decide quién obtiene los
recursos.
 Contabilidad de trabajos: realiza un seguimiento del tiempo y los recursos utilizados por
distintos trabajos o usuarios.
 Ayudas para la detección de errores: contienen métodos que incluyen la producción de
volcados, seguimientos, mensajes de error y otros métodos de depuración y detección
de errores.
 Administración de memoria: es responsable de administrar la memoria principal de una
computadora, incluyendo qué parte de ella está en uso y quién la usa, además verifica
cuánta cantidad está libre o en uso y asigna procesos.
 Gestión del procesador: asigna el procesador a un proceso y luego lo desasigna cuando
ya no es necesario o el trabajo está terminado.
 Control de Rendimiento del Sistema: Registra los retrasos entre la solicitud de un servicio y
el sistema.
 Seguridad: Evita el acceso no autorizado a programas y datos mediante contraseñas o
algún tipo de técnica de protección.
 Conveniencia: un sistema operativo hace que sea más cómodo utilizar una
computadora.
 Eficiencia: Un sistema operativo permite que los recursos del sistema informático se
utilicen de manera eficiente.
 Capacidad de evolucionar: un sistema operativo debe construirse de tal manera que
permita el desarrollo, la prueba y la introducción efectivos de nuevas funciones del
sistema al mismo tiempo sin interferir con el servicio.
 Rendimiento: un sistema operativo debe construirse de manera que pueda ofrecer el
máximo rendimiento (número de tareas por unidad de tiempo).
Actividad en Grupo (30 minutos)

 Formación de Grupos:
Dividir a los estudiantes en grupos de 4-5 personas.
 Investigación:
Asignar a cada grupo uno de los siguientes sistemas operativos: Windows, macOS,
Linux, Android, iOS.
 Proporcionar preguntas guía para que investiguen:
 ¿Cuáles son las características principales de su sistema operativo asignado?
 ¿Qué ventajas ofrece?
 ¿Qué funcionalidades clave tiene?
 Presentación Breve:
 Cada grupo tendrá unos 5 minutos para investigar y preparar una breve presentación que cubra
las preguntas asignadas.
CLASE 2

Un sistema operativo se encargará de aspectos


como:

 El uso compartido y ordenado, de los recursos entre diferentes


usuarios.

 La protección de recursos, para evitar que un usuario acceda a


recursos para los que no está autorizado.
1. Introducción al concepto de sistema
operativo

 Software base o de sistema se encarga de gestionar los recursos


hardware del sistema informático.
 Para lograrlo, incorpora una interfaz adecuada para el usuario final
y un conjunto de funciones y procedimientos que pueden ser
invocados por los programas de aplicación y que recibe el nombre
de API (del inglés Application Programming Interface).
 Software de aplicaciones
debe ser capaz de ejecutar instrucciones
en dos niveles diferentes:

En modo usuario: es el modo menos privilegiado de funcionamiento del


sistema. En este modo no se permite el acceso directo al hardware. Las
instrucciones que se ejecutan en este modo sólo pueden acceder a su
propio espacio de direcciones de memoria y utilizan el API del sistema para
requerir los servicios del sistema operativo. Este es el modo de ejecución
que utilizan todos los programas de aplicación que tengamos instalados
En modo núcleo (también llamado modo kernel) o modo supervisor: En él,
las instrucciones se ejecutan en un modo privilegiado, teniendo acceso
directo a toda la memoria (incluidos los espacios de direcciones de todos
los procesos que estén ejecutándose). También podrán acceder a todo el
hardware disponible. En este modo sólo se ejecutan algunas partes del
sistema operativo.
 Desde un punto de vista comercial, los sistemas operativos se ofrecen
como un software que incluye diferentes herramientas para proporcionar
funcionalidades básicas al usuario. Esto hace que el usuario piense en el
navegador web o en el editor de textos como partes del sistema
operativo. Sin embargo, esta creencia es errónea, ya que el navegador
web, el procesador de textos e incluso la propia interfaz gráfica que
estamos utilizando forman parte del concepto de software de
aplicación. El verdadero sistema operativo se encuentra oculto bajo
estas y otras herramientas, haciendo de intermediario entre ellas y el
hardware del ordenador.
Tipos de sistemas operativos

 Multitarea: En esta categoría se encuentran los sistemas operativos


que tienen la capacidad de dividir el tiempo de ejecución del
procesador entre diferentes procesos. De esta forma, cuando el
procesador es suficientemente rápido, dará la sensación de que
todos los procesos se ejecutan al mismo tiempo. Como ejemplos,
tenemos a la práctica totalidad de los sistemas operativos para
ordenadores actuales: Windows, macOS, GNU/Linux, …
Según el número de usuarios que pueden
usarlo simultáneamente, hablaremos de dos
tipos:

 Monousuario: Este tipo de sistemas operativos solo permiten que un


usuario tenga iniciada su sesión de trabajo en cada momento. Esto
significa que, para que un usuario pueda interactuar con el sistema, otro
usuario deberá dejar de hacerlo. Como ejemplos, podemos mencionar a
MS-DOS y todas las versiones de escritorio de Windows anteriores a XP. En
realidad, las versiones más modernas de Windows para escritorio también
imponen esta limitación, pero por una cuestión de licencia.
 Multiusuario: Son sistemas operativos que pueden atender a varios
usuarios trabajando en el sistema, a la vez, de manera independiente.
Normalmente, uno de ellos lo hace de forma local, en el propio
ordenador, y el resto usando software de escritorio remoto desde equipos
menos potentes o terminales ligeros. Como ejemplos podemos nombrar
las versiones de servidor de Windows y GNU/Linux.
Según el número de procesadores que
pueden administrar, también tenemos dos
categorías

 Monoprocesador: Se trata de sistemas operativos que solo son capaces


de administrar los recursos de un procesador (con un solo núcleo). En
muchos casos, cuando funcionan en un ordenador con varios
procesadores, o un procesador con varios núcleos, se ejecutan sobre el
primero y el resto son ignorados. Como ejemplos, podemos mencionar a
MS-DOS y todas las versiones de escritorio de Windows anteriores a XP.
 Multiporcesador: Son sistemas operativos capaces de administrar varios
procesadores (o núcleos), repartiendo su capacidad de proceso entre los
diferentes procesos. Puede ocurrir que, a lo largo del tiempo, un proceso
vaya ejecutándose en diferentes procesadores, incluso durante la misma
ejecución. Pueden servirnos de ejemplo casi todos los sistemas operativos
actuales: Windows, macOS, GNU/Linux, …
sistemas operativos según su licencia. En
este sentido, tenemos dos categorías:

 Licencia propietaria: Son sistemas operativos cuyo código fuente no es


público y tienen limitados los derechos de los usuarios (en cuando a
copiarlos, modificarlos o distribuirlos). Son propiedad de una empresa. Los
ejemplos más conocidos son Windows y macOS.
 Licencia libre: Son sistemas operativos que publican su código fuente. Los
usuarios pueden copiarlos, modificarlos o distribuirlos, siempre que tengan
en cuenta las limitaciones de su licencia. Por ejemplo, algunas de ellas
establecen que las posibles modificaciones también deben publicarse
bajo la misma licencia. Los ejemplos más conocidos de es tipo de
sistemas son las distintas distribuciones de GNU/Linux.
Actividad 1: Tipos de sistemas operativos

Crea una tabla donde aparezca, en cada fila, un sistema operativo de los mencionados en este apartado. En
las columnas aparecerán las diferentes categorías mencionadas:
 Monotarea.
 Multitarea.
 Monousuario.
 Multiusuario.
 Monoprocesador.
 Multiprocesador.
 Licencia propietaria.
 Licencia libre.
A continuación, recorre cada fila marcando las casillas que correspondan a las categorías del sistema en el
que te encuentres.
2. Funciones del sistema operativo.
Recursos

Podríamos definir el concepto de recurso como


cualquiera de los elementos software o hardware,
de los que se recurre(sirve) el sistema informático
para conseguir sus objetivos.
recursos hardware

En particular, el S.O. será el responsable de


asignarlos a cada proceso que se esté
ejecutando, impidiendo que se solapen
(sobrepongan) en su uso y resolviendo los posibles
conflictos.
Los S.O. se estructuran en distintos módulos que se
especializan en las funciones concretas relacionadas con
un tipo particular de recursos.
Las cuales son:
 Gestión de procesos:
Gestión de memoria
Gestión de archivo
Gestión de entrada y salida (E\S)
Gestión de procesos:

El S.O. se encargará de iniciar la ejecución de los


programas (los necesarios para el funcionamiento del
propio sistema operativo y los solicitados por los usuarios).
Además se encargará de facilitarles los recursos que
necesiten para garantizar su funcionamiento de forma
adecuada.
Gestión de memoria:

Todos los programas, y sus datos, deben encontrarse en


memoria principal para que puedan utilizarse.
Por lo tanto, la buena gestión de la memoria principal es
vital para el rendimiento adecuado del sistema.
Gestión de archivos:

 Los programas y los datos que se encuentran el ordenador, pero


que no se están usando en estos momentos, se encuentran
almacenados en un medio de almacenamiento externo
(normalmente, un disco), en forma de archivos.
 De nuevo, será importante la organización de esos archivos y el
control sobre el uso que se haga de ellos
Gestión de Entrada/Salida (E/S):

Se encargará de administrar el uso de los dispositivos


conectados a la PC y su vinculación, si procede, a
procesos concretos.
Además de administrar los recursos…

el S.O. supervisará su correcto funcionamiento y


recabará información estadística de su uso y
cualquier situación notable que afecte a la
seguridad.
Cuando descubra un error, deberá comunicarlo
al usuario y tratar de seguir ejecutándose.
3. Estructura de un sistema operativo

 podemos plantearnos el modo en el que dichos elementos se


organizan dentro del S.O. para llevar a cabo su cometido.
 También será importante para el diseño del sistema establecer qué
componentes del mismo se ejecutan en modo núcleo(kernel) y
cuáles en modo usuario.
Los planteamientos que se aplican en los sistemas operativos más
conocidos son los siguientes:

 Monolítico.

 Micronúcleo.

 Núcleo híbrido.
Sistemas operativos con estructura
monolítica

 el núcleo concentra la mayor parte de la funcionalidad S.O


(sistema de archivos, gestión de memoria, etc), de modo que
todos sus componentes principales se ejecutarán en modo núcleo.

 Aunque estos componentes se programen de forma separada se


unen durante el proceso de compilación mediante un enlazador
(linker).
 Para añadir flexibilidad a esta estructura, los sistemas operativos
modernos que la utilizan (como es el caso de GNU/Linux) pueden
cargar módulos ejecutables de forma dinámica, permitiéndole
actuar, en cierto modo, como un micronúcleo.
 En una estructura monolítica pura tendríamos un núcleo complejo
y de gran tamaño que debería ser recompilado por completo
ante cualquier modificación.
 Sin embargo, cuando se utiliza la carga dinámica de módulos,
éstos pueden compilarse por separado y cargarse durante la
ejecución del sistema. En cualquier caso, seguirán ejecutándose
en modo privilegiado, lo que, comparado con un sistema con
estructura de micronúcleo, lo hace más rápido, pero más
vulnerable a errores de programación.
Aplicaciones que los usuarios ejecutan. Estas
aplicaciones operan en un espacio de la memoria
protegido y tiene acceso limitado a los recursos
del sistema y necesitan solicitar servicio al núcleo
del SO.
Este es el corazón SO, donde se ejecuta el núcleo
monolítico. Dentro de este residen todos los
servicios esenciales dl SO(llamadas al SO. Es la
interfaz principal la cual el modo usuario solicita
servicio del núcleo, VFS(Virtual File system es una
capa que permita interactuar con diferentes tipos
de sistema de archivos uniforme.
IPC, mecanismo para que los procesos se
comuniquen entre si. Gestión de estructura y
acceso a los archivos del almac.
Planificador dice que proceso se ejecuta y
cuando; y la memoria virtual: gestiona la memoria
del sistema.
Drivers y Dispatcher controladores de hardware
permite que SO interactúe con los demás
dispositivos físicos)
Y esta llama al SO para solicitar su permiso y la
flecha descendente indica que el núcleo
interactúa directamente con los componentes
físicos.

Representa los componentes físicos de la


CPU. El núcleo tiene acceso directo al
hardware
ejemplos de sistemas con estructura
monolítica

 Solaris,
 FreeBSD,
 OSX (versiones anteriores a la 9),
 GNU/Linux
 y las versiones de escritorio de Windows anteriores a XP.
Estructura de micronúcleo

 En este tipo de sistemasel, núcleo sólo contiene la implementación


de servicios básicos como el soporte de acceso a memoria de
bajo nivel, la administración de tareas y la comunicación entre
procesos (también conocida como IPC, del inglés, Inter-Process
Communication
 En esta arquitectura, el micronúcleo es el único componente que
se ejecuta en modo privilegiado. El resto de las funciones del
sistema, como los controladores de dispositivos (drivers), el sistema
de archivos, la gestión de E/S, etc, se ejecutan en modo usuario.
 De esta forma, es más difícil que un error de programación en uno
de los módulos afecten al funcionamiento del resto (haciendo que
el sistema sea más fiable).
 Además, los módulos se pueden programar, compilar y cargar por
separado.
dificultades

 pueden presentarse en la sincronización de sus componentes,


pueden ocasionar una mayor complejidad del código resultante y
puede ofrecer un bajo rendimiento por las continuas llamadas
entre módulos y los constantes cambios en el modo de ejecución.
ejemplos de sistemas con estructura
de micronúcleo

 podemos nombrar :
 AIX, AmigaOS,
 Minix,
 Symbian (aunque en algunos textos aparece como monolítico con
carga dinámica de módulos)
 y NeXTStep (aunque a veces lo encontramos entre los sistemas con
núcleo híbrido).
1. Modo Usuario
En el modo usuario se ejecutan las aplicaciones. Este es el entorno en el que
las aplicaciones pueden operar sin tener acceso directo a los recursos del
hardware. incluyen:
IPC de Aplicación: Un mecanismo de comunicación entre procesos que
permite que las aplicaciones se comuniquen entre sí de manera eficiente.
Servidor UNIX: Proporciona una interfaz para servicios de sistema y acceso a
recursos.
Controlador de Dispositivo: Encargado de gestionar y comunicar con los
dispositivos de hardware.
Servidor de Archivos: Administra el acceso y la manipulación de archivos
dentro del sistema.
2. Modo Núcleo
Este modo se ocupa de la gestión del sistema operativo a un nivel más
profundo, donde tiene acceso total al hardware. Los componentes incluyen:
Planificador: Controla cómo se asignan los recursos entre los procesos,
gestionando la carga y la planificación del CPU.
Memoria Virtual: Maneja la memoria del sistema, permitiendo la utilización
eficiente del espacio de direcciones.
IPC Básico: Facilita la comunicación entre procesos a nivel del núcleo,
asegurando que los procesos puedan interactuar sin problemas.
3. Hardware
La base de toda la operación es el hardware, que incluye el CPU, memoria,
y otros dispositivos. El modo núcleo actúa como intermedio entre el
hardware y el modo usuario, gestionando cómo las aplicaciones acceden a
los recursos físicos.
Interconexiones
Las flechas indican cómo fluyen las interacciones entre los distintos
componentes. A través de este diseño, el sistema operativo puede
mantener un control estricto sobre los procesos y recursos, mientras permite
que las aplicaciones se ejecuten en un entorno más seguro y aislado.
Estructura de núcleo híbrido

 Este tipo de arquitectura consiste básicamente en un esquema


de micronúcleo que incluye algo de código complementario para
hacerlo más rápido, aunque buena parte de las funciones del
sistema operativo siguen ejecutándose en modo usuario.
 Se trata de una solución de compromiso que han adoptado
muchos de los sistemas operativos modernos, como las versiones
de escritorio de Microsoft Windows, a partir de XP, y todas las
versiones de Servidor. También se encuentra en esta
categoría macOS.
1. Modo Usuario
En esta capa, se ejecutan las aplicaciones y se proporcionan servicios. Los
principales elementos son:
Servidor UNIX: Ofrece servicios basados en el sistema UNIX, facilitando la
interacción de las aplicaciones con el sistema.
Servidor de Archivos: Administra el acceso y manejo de archivos en el
sistema, permitiendo que las aplicaciones lean y escriban datos.
IPC de Aplicación: Permite la comunicación entre aplicaciones, facilitando
el intercambio de datos y mensajes.
2. Modo Núcleo
El modo núcleo gestiona las tareas esenciales del sistema operativo y tiene
acceso directo al hardware. Los componentes clave incluyen:
Planificador: Controla la asignación del tiempo de CPU entre los procesos
en ejecución, optimizando el rendimiento general del sistema.
Memoria Virtual: Maneja la memoria de modo que las aplicaciones
puedan usar más memoria de la que físicamente hay disponible,
mejorando la eficiencia.
IPC Básico: Proporciona mecanismos esenciales de comunicación entre
procesos a un nivel más bajo y más cercano al hardware.
Controlador de Dispositivo: Facilita la gestión y operación de dispositivos de
hardware, asegurando que las aplicaciones puedan comunicarse con el
hardware de manera efectiva.
3. Hardware
La base física que soporta todas las operaciones del sistema operativo,
incluyendo CPU, RAM, y dispositivos periféricos.
Interconexiones
Las flechas indican las interacciones entre los distintos componentes. La
estructura híbrida permite que algunas funciones de alto nivel, como los
servidores de’ aplicaciones, se gestionen en modo usuario, mientras que
las funciones críticas del sistema siguen operando en modo núcleo.
Procesos del sistema operativo. Estados
de los procesos

 La idea fundamental que tenemos de un sistema informático


consiste en un dispositivo que es capaz de ejecutar ordenes
agrupadas en forma de programas.
 Mientras un programa no se encuentre en ejecución, no será nada
más que un archivo de datos en un medio de almacenamiento.
Definición de proceso:

 Una unidad de actividad que ejecuta una secuencia ordenada de


instrucciones, que dispone de una serie de recursos asignados por
el sistema y que se encuentra en un estado particular.
Estados de Procesos y su
Importancia
¿Qué son los procesos?

 Una unidad de actividad que ejecuta una secuencia ordenada de


instrucciones, que dispone de una serie de recursos asignados por
el sistema y que se encuentra en un estado particular.
 un programa en ejecución
 Mientras un programa no se encuentre en ejecución, no será nada
más que un archivo de datos en un medio de almacenamiento
Diferencia entre
archivo y proceso

Otro matiz a tener en cuenta es que un programa, entendido


como un archivo que contiene órdenes, reside en la memoria
secundaria del ordenador, mientras que un proceso reside en
la memoria principal.
El sistema dispondrá de una Tabla de procesos donde guarda la
información relevante de cada proceso. Esta información puede variar
según el sistema operativo del que hablemos pero, en general, nos
encontraremos estos datos:
 El identificador del proceso (PID, del inglés, Process IDentifier)
 El estado del proceso, es decir, si se está ejecutando, o no.
 Su prioridad con respecto al resto de los procesos del sistema.
 La posición de memoria donde se encuentra (también
llamado espacio de direcciones).
 Etc.
¿Cómo se ejecuta un proceso?

 Para saber en qué posición de


memoria se encuentra la siguiente
instrucción que debe ejecutarse, el
procesador dispone de un registro
llamado Contador de
programa (en inglés, Program
Counter, o PC), que irá cambiando
de valor según pase el tiempo.
ciclo de
instrucción

definir un ciclo de
instrucción como el tiempo que
emplea el procesador en ejecutar
una instrucción en lenguaje
máquina y, de un modo
simplificado, podríamos dividirlo
en dos pasos:
• El ciclo de lectura (en
inglés, fetch),
• El ciclo de ejecución (en
inglés, execute
¿Cómo se intercalan los procesos?

 El procesador ejecutará el código perteneciente a un módulo del


S.O. llamado Distribuidor (en inglés, Dispatcher),
 cada vez que un proceso haya consumido su tiempo (medido
en ciclos de instrucción) o haya solicitado algún servicio por el que
deba esperar (p. ej. una operación de E/S).
 sí se evita que un proceso se apropie del procesador de forma
indefinida.
un proceso en particular puede
encontrarse en tres situaciones diferentes:
Estado Descripción Transición Principal
Proceso recien creado en la memoria Al cargarse en memoria, pasa
Nuevo
secundaria. a listo

Proceso cargado en memoria y esperando Seleccionado por el


Listo
asignación de CPU. planificador; pasa a ejecución

Finaliza o se interrumpe; puede


Proceso que utiliza activamente la CPU para
En Ejecución pasar a bloqueado o
ejecutar instrucciones.
terminado

Proceso detenido hasta que se complete


Al completarse la operación,
Bloqueado/Espera una operación de entrada/salida o se
vuelve a listo
disponga del recurso requerido.

Proceso que concluye su ejecución y es


Terminado No tiene transiciones posteriores
eliminado del sistema.
En la imagen vemos
1. un proceso que se
encuentra actualmente en
ejecución,
2. otro que se encuentra
bloqueado en espera de
poder utilizar la impresora
3. y uno que se encuentra
suspendido (no está usando
la memoria principal,
aunque la tiene solicitada):
es importante

 que el S.O. trate de evitar el interbloqueo (en inglés, deadlock),


 que consiste en que dos procesos diferentes necesitan los dos
mismos recursos y cada uno de ellos tiene uno asignado. Ambos
estarán bloqueados en espera de que se libere el recurso que aún
no tienen y, por lo tanto, ninguno liberará el recurso que ya
poseen.
el ejemplo más evidente
de interbloqueo se produce
entre dos procesos, las
situaciones más difíciles de
predecir y solucionar
implican múltiples procesos y
recursos.
 Cada vez que se crea un nuevo
proceso, este es situado en estado
de Preparado.
 Cuando el proceso que se está
ejecutando es interrumpido,
el Distribuidor elige un nuevo proceso
entre los que se encuentran en
estado Preparado.
 El estado del proceso elegido pasa a
ser En ejecución mientras que el
proceso que abandona la ejecución
pasará a estado Preparado (si ha
consumido su tiempo) o Bloqueado (si
ha realizado una petición al sistema).
Planificación de procesos

 consiste en ir asignando procesos al procesador (o procesadores /


núcleos) a lo largo del tiempo,
 cumplan los objetivos en varios aspectos:
 Rendimiento:
 Tiempo de respuesta
 Tiempo de retorno
 Equidad: .
 Eficiencia:
 El módulo del sistema operativo que se encarga de esta tarea se
denomina Planificador
 Según el diseño del sistema operativo, el Planificador utilizará unos
criterios u otros.
Algoritmos de Planificación o Políticas de
Planificación

 no apropiativa (en inglés, non-preemptive) cuando, una vez que


un proceso toma el control del procesador, no lo abandona hasta
que termina o hasta que se bloquea.
 apropiativa (en inglés, preemptive) cuando el sistema puede
interrumpir el proceso para ejecutar otro diferente.
Primero en llegar primero en ser servido, o
FCFS (del inglés, First Come First Served)
Primero el más corto, o SJF (del inglés,
Shortest Job First)
Primero el de menor tiempo restante, o SRTN
(del inglés, Shortest Remaining Time Next)
Por turnos, o RR (del inglés, Round Robin)
Planificación por prioridad
Planificación por reparto equitativo, o FSS
(del inglés, Fair-share Scheduling)

Se emplea en procesos interactivos (en los que interviene


el usuario) y es apropiativo. Se tiene en cuenta el número
de usuarios que serán atendidos, de modo que el tiempo
de ejecución se reparte entre ellos de forma equitativa.
Planificación de Colas Múltiples, o MQS
(del inglés, Multilevel Queue Scheduling)

 Es apropiativo.
 Consiste en fragmentar la cola de procesos en estado Preparado en varias colas más
pequeñas, de modo que cada una puede estar administrada por un algoritmo de
planificación diferente.
Comunicación entre procesos

 IPC (del inglés, Inter-Process Communication) que facilitan el envío de mensajes


entre los procesos para comunicarse y sincronizarse. Comunicarse entre ellos
para colaborar en un objetivo común.
 Otra forma que tienen los procesos de comunicarse entre sí es compartiendo
determinadas zonas de memoria.
 Cuando los procesos que necesitan comunicarse están en ordenadores
diferentes, se utiliza RPC (del inglés, Remote Procedure Call)
Procesos y servicios

 Existe un tipo de proceso con características particulares a los que


suele llamarse Servicios. Este tipo de procesos suele ejecutarse
en segundo plano,
 En el mundo GNU/Linux, los servicios suelen recibir el nombre
de demonios
Procesos y servicios en Windows

las diferentes versiones de Windows incluyen una


herramienta llamada Administrador de tareas, que nos
ofrecen alguna información sobre su funcionamiento.
¿Cómo puedo abrir el Administrador de
tareas?

Hay varias formas de abrir el Administrador de Tareas.


 Prueben la que les resulte más cómoda: Presionen Ctrl + Shift + Esc
(la más rápida y directa).
 Hagan clic derecho en la barra de tareas y seleccionen
"Administrador de Tareas".
 Presionen Ctrl + Alt + Supr y seleccionen "Administrador de Tareas"
en la pantalla que aparece.
Actividad

Administrar procesos en Windows – 1


 En tu máquina de prácticas de Windows, ejecuta al menos dos aplicaciones que tú elijas. Pueden ser el bloc de
notas, el navegador de Internet, el programa de dibujo predeterminado, la papelera de reciclaje o cualquier
otro que prefieras.
 A continuación, abre el Administrador de tareas, elige el modo avanzado y toma una imagen. Sobre ella, intenta
identificar los siguientes datos:
 Qué porcentaje de la capacidad del procesador se está usando en ese momento.
 Cuál es el proceso que está haciendo un uso más elevado del procesador.
 El nombre de un servicio.
 Cuántos servicios está ejecutando el sistema en ese instante.
Administrar procesos en Windows – 2
 Siguiendo en la máquina de prácticas de Windows, ejecuta el bloc de notas.
 A continuación, comprueba cómo puedes cerrarlo desde el Administrador de tareas sin utilizar su modo
avanzado.
 Reactivar los procesos si es necesario.
Desde la línea de comandos (CMD):
 Abrir CMD como administrador.
 Ejecutar comandos como:
 tasklist (lista de procesos activos)
 taskkill /IM nombre_proceso.exe /F (para finalizar un proceso específico)
 Ejercicio: Finalizar un proceso en la lista y luego volver a iniciarlo si es posible (esto último
requiere abrir la aplicación de nuevo).
Iniciar un servicio

 CMD (administrador)
 net start "NombreServicio"
 Puedes abrir la aplicación directamente desde la línea de
comandos de PowerShell o CMD.
 Por ejemplo, para abrir PowerPoint, puedes escribir:
 “startpowerpoint” o “start powerpnt”
 O Blok de Nota
 “start notepad” o “notepad”
 Preguntas:
 ¿Qué aprendieron sobre la administración de procesos y servicios?
 ¿Por qué es importante controlar los procesos y servicios en un sistema
operativo?
 ¿Qué riesgos pueden existir al finalizar procesos o detener servicios?
 Cada grupo comparte una conclusión o experiencia que haya
tenido durante la práctica.
Utilización del sistema operativo: modo
orden, modo gráfico
Interacción con el sistema operativo
 interfaz gráfica, forma más habitual de relacionarnos con los
sistemas operativos
 también llamada GUI, del inglés Graphical User Interface.
 ¿Qué ES?
 Se trata más que de un programa que facilita la comunicación
entre el ordenador y el usuario mediante la manipulación de
elementos gráficos utilizando una serie de acciones predefinidas
realizadas a través del ratón y, en menor medida, con el teclado.
Uso del ratón en las interfaces gráficas

 es un elemento fundamental en todos los


entornos gráficos de usuario,
Interfaces gráficas de usuario actuales

 En la actualidad, todos los sistemas operativos de escritorio disponen de una interfaz


gráfica:
 se ha desarrollado la interfaz Fluent Design, que realiza una transición entre ambos tipos
de interfaz (táctil / ratón) de modo dinámico y se adapta a diferentes tipos de dispositivos
 se ha actualizado el menú Inicio,
 esta capa recibe el nombre de X Windows System y es la encargada de dibujar las
ventanas, botones, cuadros de texto, etc., además de gestionar los eventos que los
afecte (clic de ratón, combinaciones de teclas, etc).
 Sobre X Windows se ejecutan los gestores de ventanas, que se encargan de especificar
cómo debe dibujarse cada elemento. Del gestor de ventanas depende el aspecto, la
capacidad de personalización, etc.
 Para facilitar el uso de los gestores de ventanas se han creado librerías, llamadas toolkits.
Las más usadas son:
 GTK (Gimp toolkit)
 QT (Cute)
 La última capa de esta estructura son los entornos de escritorio, que se apoyan en
los toolkits para ofrecer el aspecto final que obtiene el usuario. De ellos depende la
integración entre aplicaciones y el comportamiento general de la interfaz.
Interfaz de texto

 a interfaz de texto era el método que utilizaban los primeros ordenadores para
comunicarse con el usuario. Permitía escribir órdenes que el ordenador ejecutaba al
pulsar la tecla Intro.
 la interfaz de texto como Consola, Terminal, Shell, Intérprete de comandos o Interfaz de
línea de comandos (incluso CLI, del inglés command-line interface).
 la interfaz de texto como Consola, Terminal, Shell, Intérprete de comandos o Interfaz de
línea de comandos (incluso CLI, del inglés command-line interface).
 Una de las ventajas de la interfaz de texto es que permite automatizar la ejecución de
varias órdenes agrupándolas en un archivo de texto llamado script (en ocasiones
también reciben el nombre de archivos batch o procesos por lotes).
 El carácter, o conjunto de caracteres, que se muestran en la
interfaz de texto para indicar que se encuentra a la espera de una
nueva orden recibe el nombre de prompt y su contenido
dependerá del sistema operativo y de la configuración que realice
el propio usuario.
PowerShell, la interfaz de texto avanzada para
Windows

Desde 2006, Microsoft ofrece una interfaz de texto avanzada que


recibe el nombre de PowerShell. En un principio se ofrecía como un
complemento gratuito que podía obtenerse libremente para Windows
XP o Windows Server 2003 y sistemas posteriores. Sin embargo, a
partir de Windows 7 y Windows Server 2008 R2 se integró de fábrica
en los sistemas operativos.
Su objetivo es la automatización de tareas administrativas y de
configuración, por lo que está muy orientado a la creación de scripts.
Incluso soporta la administración de dispositivos de red y sistemas
remotos, tanto Windows como GNU/Linux. Además, dispone de
un API que permite embeberlo dentro de otras aplicaciones.
PowerShell, la interfaz de texto avanzada
para Windows

Su objetivo es la automatización de tareas administrativas


y de configuración, por lo que está muy orientado a la
creación de scripts.
Para su funcionamiento depende de .NET Framework, aunque lo normal es que éste ya se
encuentre instalado en la mayoría de los sistemas modernos.

En PowerShell, los comandos reciben el nombre de cmdlets (del inglés, command-lets).


Además, permite el uso de alias, de modo que un mismo cmdlet puede recibir varios
nombres que, incluso, pueden ser definidos por parte de los propios usuarios.

Para acceder a la línea de comandos de PowerShell en Windows 11 basta con hacer clic,
con el botón derecho del ratón, sobre el botón Inicio.
algunos de los cmdlets

Comandos frecuentes en PowerShell


En la siguiente tabla puedes consultar
algunos de los comandos de uso más
frecuente en CMD:
 Actividad 9: Windows PowerShell

 En tu máquina de prácticas de Windows, ejecuta la interfaz de texto PowerShell, y realiza


las siguientes operaciones:
 Ejecuta el cmdlet Get-ChildItem y comprueba el resultado.
 A continuación ejecuta el mismo cmdlet, pero usando alguno de sus alias. El objetivo es
comprobar que la salida es completamente equivalente.
 Actividad 10: interfaz de texto clásica de Windows
 Siguiendo en tu máquina de prácticas de Windows, ejecuta la antigua línea de
comandos, averigua qué comando era equivalente a Get-ChildItem y comprueba su
funcionamiento..

También podría gustarte