Está en la página 1de 19

Ensayo primer capitulo

Nombres:
Carlos Eduardo Villalba Perdomo
Kevin David Rocha Bautista
Camilo Andrés Rodríguez Martínez
Juan Felipe Ladino

Universidad de Cundinamarca
Facultad de ingeniería
Ingeniería de sistemas
Fusagasugá
2020
Ensayo primer capitulo

Nombres Estudiantes:
Carlos Eduardo Villalba Perdomo
Kevin David Rocha Bautista
Camilo Andrés Rodríguez Martínez
Juan Felipe Ladino

Profesor: Edison Reyes

Universidad de Cundinamarca
Facultad de ingeniería
Ingeniería de sistemas
Fusagasugá
2020
INTRODUCCIÓN

Se lleva a cabo la lectura del primer capítulo del libro sistemas operativos modernos en la
clase de sistemas operativos, para tener el conocimiento del inicio de los sistemas, historia,
composición, evolución y características para así poder realizar un ensayo en el que
podamos redactar todo lo que pudimos aprender de este. Daremos una breve explicación
sobre los sistemas operativos vista desde dos puntos: como administrador de recursos y
como maquina extendida.
JUSTIFICACION

Nuestro estudio acerca del primer y segundo capítulo del libro SISTEMAS OPERATIVOS
MODERNOS, nos permiten analizar que los sistemas operativos tienen dos enfoques: SO
como una maquina extendida y como administrador de recursos. También mirar todas las
generaciones de SO desde 1995 con los tubos al vacío ya hasta la fecha con la llegada de
las computadoras personales. Además, tener un claro concepto acerca de los componentes
del hardware de la computadora como los procesadores, memorias, discos, etc. Luego mirar
los tipos de SO que hay en el mundo tales como: mainframe, servidores, multiprocesadores,
integrados y otros. Del mismo modo tener en claro conceptos básicos de los sistemas
operativos que en el diario vivir se ven reflejados. Por último, echar un vistazo al temario
de llamadas al sistema, estructura de los SO, mundo según C, unidades métricas y demás.
OBJETIVOS:
Objetivo General:
 Definir que son los sistemas operativos vista desde dos puntos: como administrador
de recursos y como maquina extendida.
Objetivos Específicos:
 Determinar que es un Sistema Operativo.
 Identificar las generaciones y los tipos de Sistemas Operativos.
 Detallar conceptos del hardware de la computadora.
 Determinar que son las llamadas al Sistema.
 Comprender la estructura de los Sistemas Operativos.
 Indagar sobre el mundo según lenguaje C.
Al día de hoy, un equipo de trabajo (computadora) está compuesta por gran variedad de
componentes denominados “hardware”, básicos como memoria ROM o memoria interna, la
cual es la encargada de guardar archivos, requeridos para el funcionamiento (drivers o
controladores) y a su vez, el sistema operativo como tal y cualquier otro archivo que sea
requerido mientras su capacidad lo permita, también existe la memoria RAM, la cual es la
memoria virtual, en la cual se almacenan datos o instrucciones que posteriormente serán
usadas, incluye un procesador el cual definirá la velocidad de respuesta de nuestro equipo,
tarjeta gráfica, a su vez incluirá más componentes que permitirán la interacción con el
comprador como monitor, teclado, ratón, impresoras, etc.
Los componentes “hardware” por si solos no pueden ser administrados, en ese caso se hace
necesario los componentes “software” y es ahí donde entran los sistemas operativos, cuyo
trabajo es realizar un modelo simple e interactivo; y podríamos definirlo en la siguiente
frase como “es que el que les da vida a nuestros componentes” pero ¿Únicamente
trabajamos con una capa de sistema operativo?
En realidad, con lo que los usuarios interactúan en programa se denomina Shell, basado en
el texto (código), y para hacer uso interactivo de este GUI (Graphical User Interface;
Interfaz gráfica de usuario), esta ultima la cual no hace parte en si del sistema operativo,
pero se incluye para que el mismo lleve a cabo su trabajo, no cabe recalcar que los
verdaderos conectores (clientes por decirlo así) del sistema operativo son los programas de
aplicación, los que tratan directamente con el mismo.
Las computadoras modernas trabajan ahora con un mismo concepto divido en dos partes:
1. Con el multiproceso, es un concepto y función algo compleja, dada sin ningún
control y con más de un programa ejecutando órdenes a la vez, tendríamos un
equipo por decirlo así “loco” imprimiendo procesos, el resultado un caos. Para
realizar esto correctamente se guardan las instrucciones de salida en búferes, cuando
un programa termina su salida, previamente almacenada, el otro programa puede
continuar generando más salida sin aun estar enviándose como tal a las líneas de
ejecución momentáneamente, hasta que se dé la orden.
2. El multiplex ajé, consiste en compartir recursos de dos maneras distintas: tiempo y
espacio, cuando pasa en tiempo, distintos programas o usuarios toman turnos para
utilizarlo (recurso), cuando es en espacio, cada uno obtiene una parte del recurso.
El hardware está ampliamente relacionado con un sistema operativo ya que este es el que
administra sus recursos, pero para entender este también es necesario conocer ampliamente
sus componentes. Una computadora promedio se compone de:
Se puede decir que:
1. El procesador es el cerebro de la computadora, como función obtener la primera
instrucción de memoria, decodificarla para determinar su tipo y operandos,
ejecutarla y después obtener, decodificar y ejecutar las instrucciones subsiguientes.
El ciclo se repite hasta que el programa termina. De esta forma se ejecutan los
programas.

2. La memoria, el segundo componente más importante, y se constituye en un sistema


jerárquico. La capa superior consiste en los registros internos de la CPU. Están
compuestos del mismo material que la CPU y, por ende, tienen la misma rapidez.
En consecuencia, no hay retraso a la hora de utilizarlos. La capacidad de
almacenamiento disponible en estos registros es generalmente de 32 bits en una
CPU de 32 bits y de 64 64 bits en una CPU de 64 bits. Menos de 1 KB en ambos
casos. Los programas deben administrar los registros (es decir, decidir qué deben
guardar en ellos) por su cuenta, en el software.
3. Discos, El almacenamiento en disco es dos órdenes de magnitud más económico
que la RAM por cada bit, y a menudo es dos órdenes de magnitud más grande en
tamaño también. El único problema es que el tiempo para acceder en forma
aleatoria a los datos en ella es de cerca de tres órdenes de magnitud más lento. Esta
baja velocidad se debe al hecho de que un disco es un dispositivo mecánico.
4. La última capa de la jerarquía en la memoria es la cinta magnética. Este medio se
utiliza con frecuencia como respaldo para el almacenamiento en disco y para
contener conjuntos de datos muy extensos.
5. Los dispositivos de E/S también interactúan mucho con el sistema operativo,
generalmente constan de dos partes: un dispositivo controlador y el dispositivo en
sí. El dispositivo controlador es un chip o conjunto de chips que controla
físicamente el dispositivo. Por ejemplo, acepta los comandos del sistema operativo
para leer datos del dispositivo y los lleva a cabo.
6. Buses.
7. Cuando se arranca la computadora, el BIOS inicia su ejecución. Primero hace
pruebas para ver cuánta RAM hay instalada y si el teclado junto con otros
dispositivos básicos está instalado y responden en forma correcta. Empieza
explorando los buses ISA y PCI para detectar todos los dispositivos conectados a
ellos. Comúnmente, algunos de estos dispositivos son heredados. Además de tener
valores fijos para los niveles de interrupciones y las direcciones de E/S (que
posiblemente se establecen mediante interruptores o puentes en la tarjeta de E/S,
pero que el sistema operativo no puede modificar). Estos dispositivos se registran; y
los dispositivos plug and play también. Si los dispositivos presentes son distintos
de lo que había cuando el sistema se inició por última vez, se configuran los nuevos
dispositivos. Después, el BIOS determina el dispositivo de arranque, para lo cual
prueba una lista de dispositivos almacenada en la memoria CMOS.
El sistema operativo es el software encargado de coordinar y dirigir los servicios y
aplicaciones que utiliza el usuario. Consisten en interfaces graficas o gestores de ventana
que tiene como función brindar al usuario una representación gráfica de lo que se está
ejecutando
Las ejecuciones de los sistemas operativos suelen darse de manera única respecto al resto
del software, sin permitir que un programa cualquiera pueda intervenir y realizar cambios
sobre el que puedan afectar su funcionamiento
El sistema operativo lo podemos dividir en dos fases uno como maquina extendido
encargado de comprender el lenguaje de maquina debido a que la mayoría de los
computadores son primitivas y el sistema operativo como administrador de recursos, al que
los programas de usuario piden que realice para ellos determinadas actividades. El sistema
operativo analiza cada petición, decidiendo si los programas tienen derecho a efectuarlas, y
decide cuándo realizara cada petición en función de las condiciones de trabajo para obtener
el mejor rendimiento.

La primera generación de computadoras se caracterizó por utilizar tubos al vacío para lleva
a cabo su funcionamiento, el inconveniente con dichos tubos es que solían recalentarse
demasiado lo cual implicaba estar realizando cambios constante mente y operaban por
medio de tarjetas perforadas, ya en 1955 apareció el transistor quien fue el que revoluciono
el funcionamiento haciendo así, más confiable, reduciendo su tamaño y generando menor
consumo de electricidad, también fueron llegando nuevos lenguajes que se fueron
incorporando y pasaron a recibir el nombre de lenguajes de alto nivel y a su vez se empezó
a implementar el proceso por lotes, en 1965 llego la tercera generación de computadores la
cual la caracterizaron los circuitos integrados y la multiprogramación , los computadores
nuevamente se redujeron en tamaño , consumían menos y tenían un mejor rendimiento y la
multiprogramación la cual se caracteriza por que dos o más procesos pueden alojarse en la
memoria principal y ser ejecutados concurrentemente por el procesador o CPU , ya en 1980
con el desarrollo de los circuitos llegaron las computadoras personales los cuales se
empezaron a comercializar de forma masiva Una computadora personal suele estar
equipada para cumplir tareas comunes, permite navegar por Internet, estudiar, escribir
textos y realizar otros trabajos de oficina o educativos, como editar textos y bases de datos,
a ocho demás de actividades de ocio, como escuchar música, ver videos, jugar, etc.

Dentro de las operaciones más básicas y la vez más complejas de nuestra PC encontramos
los procesos. Siempre que le pidamos a nuestra computadora que haga algo, los procesos
asumirán el trabajo y de esta manera el microprocesador dará ejecución al plan que realice
el sistema operativo a través del proceso.
Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto
formado por:
Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su
estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU
para dicho programa.
Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
Los procesos son creados y destruidos por el sistema operativo, así como también este se
debe hacer cargo de la comunicación entre procesos, pero lo hace a petición de otros
procesos.
En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La
diferencia estriba en que un proceso solamente puede crear hilos para sí mismo y en que
dichos hilos comparten toda la memoria reservada para el proceso.
Modelo de dos estados.

El modelo de estados más simple es el de dos estados. En este modelo, un proceso puede
estar ejecutándose o no. Cuando se crea un nuevo proceso, se pone en estado de No
ejecución. En algún momento el proceso que se está ejecutando pasará al estado No
ejecución y otro proceso se elegirá de la lista de procesos listos para ejecutar para ponerlo
en estado Ejecución.
Un espacio de direcciones define un intervalo de direcciones discretas, cada una de las
cuales puede corresponder a un host de red, un dispositivo periférico, un sector de disco,
una celda de memoria u otra entidad lógica o física.
Para que los programas informáticos guarden y recuperen los datos almacenados, cada
unidad de datos debe tener una dirección en la que pueda localizarse individualmente, o
bien el programa no podrá encontrar y manipular los datos. El número de espacios de
direcciones disponibles dependerá de la estructura de dirección subyacente.
Los espacios de direcciones se crean combinando suficientes calificadores identificados de
manera única para hacer que una dirección no sea ambigua. Para la dirección física de una
persona, el espacio de direcciones sería una combinación de ubicaciones. Algunos
elementos de un espacio de direcciones pueden ser iguales, pero si cualquier elemento en la
dirección es diferente de las direcciones en dicho espacio, hará referencia a diferentes
entidades.
Los archivos se utilizan para toda la entrada y salida de información del sistema operativo,
para estandarizar el acceso al software y al hardware.
La entrada se produce cuando se modifica el contenido de un archivo o se graba en él. La
salida se produce cuando se lee el contenido de un archivo o se transfiere a otro archivo.
Por ejemplo, para crear una copia impresa de un archivo, el sistema lee información del
archivo de texto y graba esa información en el archivo que representa la impresora.
Tipos de archivos:
Los tipos de archivos reconocidos por el sistema son normal, directorio o especial. No
obstante, el sistema operativo utiliza muchas variaciones de estos tipos básicos.
Administración de archivos:
Existen muchas formas de trabajar con los archivos del sistema. Normalmente debe crear
un archivo de texto con un editor de texto.
Los enlaces son conexiones entre un nombre de archivo y un número de referencia de nodo
de índice, la representación interna de un archivo. Puesto que las entradas de directorio
contienen nombres de archivos emparejados
Gestión de Entradas y Salidas:
Gestión de Entrada y Salida: esto representa los intercambios de información desde el
procesador o incluso al acceso directo de la memoria. Esta actividad de entrada y salida se
realiza gracias a la relación que hay entre el sistema operativo con los diversos periféricos,
así administrar y controlar los estados y recursos que tienen cada uno de estos mediante los
controladores de dispositivos
Dispositivos o periféricos: son aparatos solidos e independientes que van conectados a la
unidad central de la computadora. Existen diversos tipos de dispositivos con funciones
diferentes
Dispositivos de entrada: tienen la tarea de introducir información, órdenes, comandos e
instrucciones para que la computadora lo procese con el sistema operativo.
La función principal de un Sistema Operativo es la de tomar todos los recursos físicos de un
sistema y brindarlos de manera virtual, esto es logrado por medio de una abstracción del
hardware.
Es importante en definir claramente las diferencias entre estos dos conceptos:
La seguridad es algo que manejamos en todos los aspectos de nuestras vidas, y por
experiencia se sabe que no depende de una sola persona, si no que está fuertemente ligada
con todo lo que lo rodea, por esto la seguridad no solo es manejada por el sistema operativo
si no que es necesario un refuerzo como otro software que comúnmente denominamos
“antivirus”. Un sistema operativo como administrador de los recursos cumple funciones
muy importantes en la instrumentación de la seguridad. En la actualidad los conceptos e
ideas tenidos sobre la seguridad han ido cambiando mucho, esto porque se entró a una era
donde es posible los accesos remotos a los equipos, donde se busca que todo proceso sea
más fácil de realizar.
Un sistema de seguridad debe cumplir con unos requisitos:
 Confidencialidad: Acceso solo a usuarios autorizados
 Integridad: Modificación solo por usuarios autorizados
 Disponibilidad: Recursos solamente disponibles para usuario autorizado
La seguridad se clasifica en:
 Externa: protección contra desastres y contra intrusos
 Operacional: básicamente nos determina que acceso se permite al usuario.
Una de las obligaciones de un sistema seguro es permanecer en constante vigilancia,
verificando y validando las posibles amenazas, esto lo hacen con uso de contraseñas,
controles de acceso
Las LLAMADAS AL SISTEMA es un método o función que puede invocar un proceso
para solicitar un cierto servicio al sistema operativo. Dado que el acceso a ciertos recursos
del sistema requiere la ejecución de código en modo privilegiado, el sistema operativo
ofrece un conjunto de métodos o funciones que el programa puede emplear para acceder a
dichos recursos. En otras palabras, el sistema operativo actúa como intermediario,
ofreciendo una interfaz de programación, que el programa puede usar en cualquier
momento para solicitar recursos gestionados por el sistema operativo.
Algunos ejemplos de llamadas al sistema son las siguientes:
 Write, que se emplea para escribir un dato en un cierto dispositivo de salida, tales
como una pantalla o un disco magnético.
 Read, que es usada para leer de un dispositivo de entrada, tales como un teclado o
un disco magnético.
 Open, que es usada para obtener un descriptor de un fichero del sistema, ese fichero
suele pasarse a write.
 Close, que se emplea para cerrar un descriptor de fichero.

Este tipo de llamadas al sistema permiten realizar "actividades" relacionadas con los
programas que están en espera para ejecución o que se están ejecutando, es decir, cuando
son un proceso; cada sistema operativo tiene sus formas de invocar dichas llamadas, en el
caso de los sistemas operativos bajo el núcleo Linux estas se pueden invocar desde el Shell
o interprete de comandos y desde el lenguaje C. Las llamadas más comunes de este tipo
son:
 Fork (): Esta es una llamada a sistema para el control de procesos que al ser
invocada genera un proceso hijo, como una copia del proceso en donde fue
invocada la llamada, este hijo es casi exactamente igual a su padre
 Getpid (): Es una llamada para el control de procesos que retorna el pid del proceso
que la invoco.
 Getppid (): Es una llamada para el control de procesos que retorna el pid del padre
del proceso que la invoca.
 La familia de llamadas exec… (…): La familia exec... () es un conjunto de
funciones que en esencia realizan la misma actividad ya que solo difieren en la
forma de pasar sus argumentos, son utilizadas para poner en ejecución un proceso
determinado, la característica es que las instrucciones del proceso que las invoca
son sustituidas por las instrucciones del proceso indicado
 Wait (): Al ser invocada, suspende el proceso que la invocó para que su proceso hijo
termine de ejecutar su código (es decir, espera a su hijo) o hasta que el proceso
invocador reciba una señal de terminación de proceso.
 Waitpid (…): La función de esta llamada es la misma que la de la función wait(...),
la diferencia radica en que el primer argumento es el pid del hijo que se quiere
esperar, el segundo argumento es el puntero a la variable entera en la cual se
almacenara el estado (este también puede ser NULL), y el tercer argumento es un
entero que representa una opción.

También contiene programas de administración que controla la creación, borrado y acceso


de archivos de datos y programas manteniendo el registro de la ubicación física de los
archivos también se usan los mismos parámetros como read y write.
La función de administración de directorios es la misma que la de la función wait(...), la
diferencia radica en que el primer argumento es el pid del hijo que se quiere esperar, el
segundo argumento es el puntero a la variable entera en la cual se almacenara el estado
(este también puede ser NULL), y el tercer argumento es un entero que representa una
opción.
Miscelánea de llamadas al sistema es un conjunto de funciones residentes en bibliotecas
que permiten que una aplicación corra bajo un determinado sistema operativo.
Debido a su estrecha relación con el desarrollo de software, los programas en sus
especificaciones generalmente explicitan la versión de la API del sistema operativo,
mediante diversas nomenclaturas tales como la versión específica del sistema operativo
(para Windows 98, por ejemplo), o explicitando la versión del conjunto de bibliotecas
(Plataforma Win32, etc.).
Las funciones API se dividen en varias categorías:
• Depuración y manejo de errores
• E/S de dispositivos
• Varias DLL, procesos e hilos
• Comunicación entre procesos
• Manejo de la memoria
• Monitorización del desempeño
• Manejo de energía
• Almacenamiento
• Información del sistema
• GDI (interfaz para dispositivos gráficos) de Windows (tales como impresoras)
• Interfaz de usuario de Windows

ESTRUCTURA DE UN SISTEMA OPERATIVO:


Ya que hablamos de la parte exterior de los sistemas operativos, ahora empezaremos hablar
sobre los sobre la estructura de los sistemas operativos, las cuales son 6 y analizaremos
cada una de ellas para empezar tenemos los sistemas monolíticos, este es un sistema que se
describe como una colección de procedimientos, enlazados entre sí en un solo programa
binario ejecutable extenso. Para construir un sistema como este debemos tener los
siguientes parámetros:
1. Un programa principal que invoca el procedimiento de servicio solicitado.
2. Un conjunto de procedimientos de servicio que llevan a cabo las llamadas al
sistema.
3. Un conjunto de procedimientos utilitarios que ayudan a los procedimientos de
servicio.
Los sistemas monolíticos se dividen en tres niveles de procedimientos los cuales son:

Luego de este, tenemos los sistemas por capas el cual surgió con la llegada del sistema
THE, el cual consta un sistema simple de procesamiento por lotes y tenia 6 capas las cuales
son:
1. Asignación del procesador y multiprogramación
2. Administración de memoria y tambor
3. Comunicación operador-proceso
4. Administración de la entrada y salida.
5. Programas de usuario.
6. El operador.
Después llega el mecanismo de los anillos, su principal ventaja es que se puede extender
fácilmente por estructuras de subsistemas de usuario, mientras que las capas de realidad de
THE era sólo una ayuda diseña debido a que las partes del sistema estaban enlazadas entre
sí y sólo se podía ejecutar un programa.
Mas adelante encontramos los Microkernels, En ese tiempo se encontraba una variedad de
errores en los anteriores sistemas y aquí surge la cifra va aproximadamente de que por cada
línea de código había 10 errores, Es allí donde surge el Microkernel, su idea principal es
lograr una alta confiabilidad al dividir el sistema operativo en módulos pequeños y bien
definidos, donde un sistema se ejecuta el Kernel y el resto se ejecuta como en procesos de
usuario ordinarios. En el siguiente esquema miraremos que esos dispositivos controladores
se ejecutan como procesos de usuarios separados, por ejemplo:

Es pocas palabras el Microkernel es un algoritmo de planificación relativamente simple


sería asignar una prioridad a cada proceso y después hacer que el Kernel ejecute el proceso
de mayor prioridad que sea ejecutable.
Ahora entramos a un tema El cual trata de modelo cliente servidor es una idea del
Microkernel el cual trata de diferenciar dos clases de procesos: Los servidores donde cada
uno de los cuales proporciona un cierto servicio y dos clientes los cuales utilizan estos
servicios. Sí esa comunicación será por medio de mensajes Hola para obtener un servicio
un proceso cliente construyó mensaje indicando lo que sea y lo envía al servicio apropiado,
donde el servicio hace el trabajo y lo envía de vuelta en respuesta al cliente. En el siguiente
esquema veremos el modelo cliente servidor sobre una red.

Después de que surge este modelo empieza a surgir un concepto de máquinas virtuales las
cuales son sistemas de procesamiento por lotes, Esas máquinas dieron su inicio ya que
surgió un problema donde los trabajadores querían la capacidad de trabajar de manera
interactiva en
una terminal, tanto dentro como fuera de IBM, decidieron escribir sistemas de tiempo
compartido para este sistema. Gracias a esto se da inició a una variedad de sistemas que
seguirán mejorando cada vez más.

En la siguiente gráfica tomamos como referencia al modelo VM/370, en el cual se podía


ejecutar programas sin la necesidad de tener que usar la máquina virtual, después surgen
más modelos hasta que llegamos a una máquina virtual moderna llamada z/VM el cual
tiene la propiedad de dejar utilizar varios sistemas operativos al mismo tiempo.
Luego de cuatro décadas en que IBM dispondrían de máquinas virtuales y que cada vez
eran mejores, aún la idea de la virtualización se había degradado durante este periodo, pero
en los últimos años se han combinado nuevas necesidades, software y nuevas tecnologías
volviéndose de moda. Después de este periodo y donde se usaba el término “monitor de
máquinas virtuales” ha cambiado su nombre por el de hipervisor de tipo 1 en años
recientes. Hay dos tipos de hipervisor el tipo 1 y tipo 2 como se muestra en la imagen.

Luego de todos estos avances se empieza a salir las maquinas virtuales de java que de una
manera algo mas distinta tiene como objetivo ejecutar programas de Java, que hasta el día
de hoy nosotros las utilizamos, en seguida surge la Enokernels que, en pocas palabras en
vez de clonar la máquina actual, como se hace con las máquinas virtuales, otra estrategia es
particionarla;
en otras palabras, a cada usuario se le proporciona un subconjunto de los recursos. Así,
una máquina virtual podría obtener los bloques de disco del 0 al 1023, la siguiente podría
obtener
los bloques de disco del 1024 al 2047 y así sucesivamente.

EL MUNDO SEGÚN C.

Como sabemos las mayorías de programas están basado en lenguaje C o también en C++,
ya que es un entorno el cual nos permite desarrollar sistemas operativos.

Básicamente, el lenguaje en C se basa en lenguajes imperativos con tipos de datos,


variables e instrucciones de control, por ejemplo. Los tipos de datos primitivos en C son
enteros (incluyendo cortos y largos), caracteres y números de punto
flotante. Otro punto del mundo según C son los Archivos de encabezado que, por lo
general, un proyecto de sistema operativo consiste en cierto número de directorios, cada
uno
de los cuales contiene muchos archivos. Con este lenguaje podemos hacer proyectos de
programación extensos para generar el sistema operativo, el compilador de C compila
cada archivo. C en un archivo de código objeto. En el siguiente grafico miraremos la forma
en que copila el lenguaje C.

Por último, tenemos el modelo del tiempo de ejecución, en este momento cuando ya se ha
enlazado el archivo binario del sistema operativo, la computadora puede reiniciarse
con el nuevo sistema operativo. Una vez en ejecución, puede cargar piezas en forma
dinámica que no se hayan incluido de manera estática en el binario, como los drivers de
dispositivos y los sistemas de archivos. Hay que aclara que en casi todos los casos el código
del sistema operativo es ejecutado directamente por el hardware, sin intérprete y sin
compilación justo-a-tiempo, como se da el caso con Java.
INVESTIGACIÓN ACERCA DE LOS SISTEMAS OPERATIVOS:

La ciencia computacional es un campo que avanza con rapidez y es difícil predecir hacia
dónde va, Ya que día a día se van desarrollando nuevas ideas y por ende esto contribuye un
aporte para el desarrollo y la implementación de futuros productos los cuales dan un
impacto masivo en la industria y en los usuarios dependiendo del sistema que estos estén
implementando y las novedosas ideas que aporten a la industria, Por ejemplo, cuando el
presidente Eisenhower estableció la Agencia de Proyectos Avanzados de Investigación
(ARPA) del Departamento de Defensa en 1958, trataba de evitar que el Ejército
predominara sobre la Marina y la Fuerza Aérea en relación con el presupuesto de
investigación. No estaba tratando de inventar Internet. Pero una de las cosas que hizo
ARPA fue patrocinar cierta investigación universitaria sobre el entonces oscuro tema de la
conmutación de paquetes, lo cual condujo a la primera red experimental de conmutación de
paquetes, ARPANET, Entró en funcionamiento en 1969. Poco tiempo después, otras redes
de investigación patrocinadas por ARPA estaban conectadas a ARPANET, y nació Internet,
que en ese entonces era utilizada felizmente por los investigadores académicos para
enviarse correo electrónico unos con otros durante 20 años.
La investigación de los sistemas operativos ha producido grandes cambios en los sistemas
prácticos, un ejemplo es el anterior con relación al internet, donde podemos apreciar que
todos los sistemas de procesamiento se organizaban por lotes hasta que el M.I.T. inventó el
tiempo compartido interactivo a principios de la década de 1960. Todas las computadoras
eran basadas en texto, hasta que Doug Engelbart inventó el ratón y la interfaz gráfica de
usuario en el Stanford Research Institute a finales de la década de 1960.
DESCRIPCIÓN GENERAL SOBRE EL RESTO DE ESTE LIBRO:
Desde el punto de vista del programador, el propósito principal de un sistema operativo es
proveer ciertas abstracciones clave, siendo las más importantes los procesos y hilos, los
espacios de direcciones y los archivos.
Dado que la CPU conmuta rápidamente entre un proceso y otro, la velocidad a la que un
proceso ejecuta sus cálculos no es uniforme y tal vez ni siquiera sea reproducible si se
ejecutan los mismos procesos de nuevo. Por ende, al programar los procesos debe asumirse
esta variación de velocidad. Por ejemplo, considere un proceso de E/S que inicia una
unidad de cinta magnética para restaurar los archivos respaldados, ejecuta un ciclo de
inactividad 10,000 veces para permitir que obtenga la velocidad adecuada y después emite
un comando para leer el primer registro. Si la CPU decide conmutar a otro proceso durante
el ciclo de inactividad, el proceso de la cinta tal vez no se ejecute de nuevo sino hasta que el
primer registro se encuentre más allá de la cabeza de lectura. Cuando un proceso tiene
requerimientos críticos de tiempo real como éste, es decir, cuando deben ocurrir eventos
específicos dentro de un número especificado de milisegundos, es necesario tomar medidas
especiales para asegurar que ocurran. Sin embargo, por lo general la mayoría de los
procesos no se ven afectados por la multiprogramación subyacente de la CPU o las
velocidades relativas de distintos procesos. Por el contrario, en Windows una sola llamada
a una función de Win32 (CreateProcess) maneja la creación de procesos y carga el
programa correcto en el nuevo proceso. En Windows como en UNIX cada proceso que se
cree se puede decir que es totalmente independiente del otro ya que si en un proceso se
requiere hacer una modificación, una vez realizada esta modificación, esta no será visible
para el otro proceso ya que van en direcciones distintas.
Conclusión:
En conclusión, determinamos que los sistemas operativos se dividen en dos: SO como
administrador de recursos que como fin tiene administrar todas las partes del sistema de
forma eficiente y SO como maquina extendida, su función es proveer a los usuarios
contemplaciones que sean más aceptables de usar como procesos, archivos, espacios de
direcciones, etc. Aprendimos sobre la historia de los sistemas operativos desde su inicio
con reemplazo de los sistemas de operador hasta los sistemas modernos de
multiprogramación, Analizando sistemas de procesamiento por lotes, multiprogramación y
de la computadora personal. También aprendimos Que las computadoras están compuestas
por procesadores, memorias, dispositivos de entrada y salida.

También miramos que el corazón de cualquier sistema operativo es el conjunto de llamadas


al sistema que puede manejar. Estas llamadas indican lo que realmente hace el sistema
operativo. Para UNIX, hemos visto cuatro grupos de llamadas al sistema. El primer grupo
de llamadas se relaciona con la creación y terminación de procesos. El segundo grupo es
para leer y escribir en archivos. El tercer grupo es para administrar directorios. El cuarto
grupo contiene una miscelánea de llamadas.
Los sistemas operativos se pueden estructurar en varias formas. Las más comunes son
como un sistema monolítico, una jerarquía de capas, Microkernel, cliente-servidor,
máquina virtual o Enokernels. Gracias al lenguaje en C es que muchos programadores
pudieron desarrollar sistemas que hasta el día de hoy usamos.

También podría gustarte