You are on page 1of 27

BENEMERITA UNIVERSIDAD AUTONOMA DE PUEBLA

TEMA:

INTRODUCCION A LOS SISTEMAS OPERATIVOS

PROFESOR(a):

CERON GARNICA MARIA DEL CARMEN

EQUIPO 1:

ABSALON CRUZ NALLELY

CRUZ PEREZ RICARDO

FLORES BRAVO MARIA CRISTINA

JUAREZ BLANCO ADRIANA GABRIELA

MARTINEZ MARTINEZ JONATHAN

PABLO CUAHUIZO ANDRES

ROJAS CONTRERAS DAVID

URCID HERNANDEZ OSCAR


SISTEMAS OPERATIVOS

Un sistema operativo es un software de sistema, es decir, un conjunto de programas de


computadora destinado a permitir una administración eficaz de sus recursos. Comienza a
trabajar cuando se enciende el computador, y gestiona el hardware de la máquina desde los
niveles más básicos, permitiendo también la interacción con el usuario.

Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos


electrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstos podemos
entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores
de DVD, autoradios, computadoras, etc.).

Actualmente el concepto de computadora esta intrínsecamente relacionado al de sistema


operativo, aunque éste existe en otros aparatos electrónicos y no sólo en las computadoras.

Características
Administración de tareas

• Monotarea: Solamente puede ejecutar un proceso (aparte de los procesos del


propio S.O.) en un momento dado. Una vez que empieza a ejecutar un proceso,
continuará haciéndolo hasta su finalización y/o interrupción.
• Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de
S.O. normalmente asigna los recursos disponibles (CPU, memoria, periféricos)
de forma alternada a los procesos que los solicitan, de manera que el usuario
percibe que todos funcionan a la vez, de forma concurrente.

Administración de usuarios

• Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo


tiempo.
• Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus
programas, accediendo a la vez a los recursos de la computadora. Normalmente
estos sistemas operativos utilizan métodos de protección de datos, de manera
que un programa no pueda usar o cambiar los datos de otro usuario.

Manejo de recursos

• Centralizado: Si permite utilizar los recursos de una sola computadora.


• Distribuido: Si permite utilizar los recursos (memoria, CPU, disco,
periféricos... ) de más de una computadora al mismo tiempo.

Componentes de un sistema operativo


Gestión de procesos

Un proceso es simplemente, un programa en ejecución que necesita recursos para


realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el
responsable de:

• Crear y destruir los procesos.


• Parar y reanudar los procesos.
• Ofrecer mecanismos para que se comuniquen y sincronicen.

La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista
de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos
comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con
las de prioridad media y después las de baja. Una vez realizada la tarea se tacha. Esto
puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a
ejecutarse. Y permanezcan en la lista para siempre. Para solucionar esto, se puede
asignar alta prioridad a las tareas más antiguas.

Gestión de la memoria principal

La memoria es una gran tabla de palabras o bytes que se referencian cada una mediante
una dirección única. Este almacén de datos de rápido accesos es compartido por la CPU
y los dispositivos de E/S, son volátil y pierde su contenido en los fallos del sistema. El
SO es el responsable de:

• Conocer qué partes de la memoria están utilizadas y por quién.


• Decidir qué procesos se cargarán en memoria cuando haya espacio disponible.
• Asignar y reclamar espacio de memoria cuando sea necesario.

Gestión del almacenamiento secundario

Un sistema de almacenamiento secundario es necesario, ya que la memoria principal


(almacenamiento primario) es volátil y además muy pequeña para almacenar todos los
programas y datos. También es necesario mantener los datos que no convenga mantener
en la memoria principal. El SO se encarga de:

• Planificar los discos.


• Gestionar el espacio libre.
• Asignar el almacenamiento.

El sistema de E/S

Consiste en un sistema de almacenamiento temporal (caché), una interfaz de


manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo
debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los
dispositivos de E/S.

Sistema de archivos
Los archivos son colecciones de información relacionada, definidas por sus creadores.
Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes,
textos, información de bases de datos, etc... El SO es responsable de:

• Construir y eliminar archivos y directorios.


• Ofrecer funciones para manipular archivos y directorios.
• Establecer la correspondencia entre archivos y unidades de almacenamiento.
• Realizar copias de seguridad de archivos.

Existen diferentes Sistemas de Archivos, es decir, existen diferentes formas de organizar


la información que se almacena en las memorias (normalmente discos) de los
ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32, EXT2, NTFS...

Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a
primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo, los
sistemas de ficheros FAT32 y NTFS , que se utilizan fundamentalmente en sistemas
operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una base
de datos con bastante información ya que el tamaño máximo de un fichero con un
Sistema de Archivos FAT32 está limitado a 4 gigabytes sin embargo en un sistema
NTFS el tamaño es considerablemente mayor.

PERMISOS EN LINUX
El sistema de permisos en Linux se basa en un esquema de usuarios/grupos que lo
convierte en la base principal de la seguridad en Linux, a estos usuarios y grupos se les
asignan distintos derechos sobre los archivos y directorios.

Todos los archivos y directorios en Linux tienen permisos que verifican quien puede
hacer o no alguna acción con él.

Permisos

Los permisos son tres:

• r: read (lectura): Cuando el permiso de lectura está activo sobre un directorio


significa que se podrá listar los recursos almacenados en él, si está asignado a un
archivo se podrá leer su contenido.
• w: write (escritura): Cuando el permiso de escritura está activo sobre un
directorio significa que se podrá crear y borrar archivos en su interior, si esta
activado para un archivo significa que se podrá modificar su contenido.
• x: execute (ejecución): Si el permiso de ejecución está activo sobre un
directorio significa que el usuario podrá realizar otras funciones dentro de él
mediante los otros permisos de lectura y escritura, y si está activo sobre un
archivo se podrá ejecutarlo desde la línea de comandos.

Para ver los permisos de los archivos y directorios es necesario ejecutar el siguiente
comando:
$ ls –l

Interpretación

- rw- r-- r-- 1 raul raul 246417 2005-03-03 13:13 foto1.png


↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
12 3 4 56 7 8 9 10 11

1 : Tipo de archivo = es un archivo regular


2 : Permisos = los permisos para el propietario son de lectura y escritura
3 : Permisos = el grupo tiene permiso de sólo lectura
4 : Permisos = los otros usuarios tienen el permiso de sólo lectura
5 : Enlace Físico = tiene un enlace físico
6 : Propietario = el usuario raul es el propietario de este archivo
7 : Grupo = este archivo pertenece al grupo raul
8 : Tamaño = su tamaño es de 246417 bytes
9 : Fecha = fue creado el 03 de marzo de 2005
10 : Hora = a 13:13 horas
11 : Nombre = el archivo se llama foto1.png

Los permisos están asignados en grupos de 3 (rwx) y corresponde al: owner: dueño del
archivo o directorio, group: grupo del archivo o directorio y others: otro usuario
diferente del propietario.

En la siguiente imagen se observa la ubicación de los permisos:


COMANDOS

Linux dispone de 3 comandos que permite cambiar los permisos, el propietario y el


grupo de un archivo y/o directorio respectivamente:

• Comando chmod : se utiliza para cambiar los permisos del archivo o directorio
$ chmod [permisos] [archivo/directorio] [opciones]

• Comando chown : se utiliza para cambiar el propietario del archivo o directorio


# chown [nuevo usuario propietario] [archivo/directorio] [opciones]

• Comando chgrp : utilizado para cambiar el grupo del archivo o directorio


# chgrp [nuevo grupo] [archivo/directorio] [opciones]

Para cambiar los permisos se puede hacer de 2 maneras:

1. Utilizando taquigrafía basada en caracteres, o


2. Utilizando números.

CAMBIO DE PERMISOS UTILIZANDO TAQUIGRAFÍA DE CARACTERES

Para poder utilizar la taquigrafía basada en caracteres tomemos en cuenta la siguiente


lista con su respectiva correspondencia:

Símbolo Descripción
u Es el usuario propietario del archivo o directorio
g Es el grupo al que pertenece el archivo o directorio
Identidades
o Otros usuarios, el resto del mundo, ni el propietario ni su grupo
a Todo el mundo – propietario, grupo y otros
r Acceso de lectura
Permisos w Acceso de escritura
x Acceso de ejecución
+ Añade los permisos
Acciones - Elimina los permisos
= el único permiso

Ejemplo con el comando chmod, el archivo afectado será foto1.png:

Ejemplo Descripción Resultado


quitamos todos los permisos al archivo
$ chmod a-rwx foto1.png ---------
foto1.png
añadimos todos los permisos para el
$ chmod u+rwx foto1.png rwx------
propietario
añadimos el permiso de ejecución para el
$ chmod g+x foto1.png rwx—x---
grupo
añadimos el permiso de lectura para los
$ chmod o+r foto1.png rwx—xr--
otros usuarios
eliminamos los permisos de lectura y
$ chmod u-rw foto1.png --x—xr--
escritura para el propietario
establecemos como unico permiso de lectura
$ chmod a=r foto1.png r—r—r--
para los 3 grupos
establecemos los permisos de lectura y
$ chmod a=rx foto1.png r-xr-xr-x
ejecución para los 3 grupos
$ chmod a=- foto1.png quitamos todos los permisos ----------
añadimos los permisos de lectura y
$ chmod u+rx,o+x foto1.png r-x-----x
ejecución al propietario y ejecución a otros
añadimos permiso de lectura y ejecución al
$ chmod g+rx,o-x foto1.png grupo y eliminamos permiso de ejecución a r-xr-x---
otros
añadimos permiso de escritura y ejecución al
$ chmod ug+wx,o-x foto1.png propietario y grupo, y eliminamos permiso rwxrwx---
de ejecución a otros
permite a cualquiera modificar el contenido
$ chmod a=rw foto1.png rw-rw-rw-
e incluso eliminar el archivo

Si cambiamos los permisos a un directorio y deseamos que estos permisos tengan efecto
sobre todos sus subdirectorios y archivos sólo deberemos añadir la opción –R. Ejemplo:

$ chmod a=rw DIRECTORIO –R


UTILIZANDO NÚMEROS

Cada permiso tienen asignado un valor, incluso cuando el permiso no está activo. Para
poder utilizar los números tendremos que tener en cuenta la siguiente tabla con sus
respectivos valores:

r = 4 (lectura)
w = 2 (escritura)
x = 1 (ejecucion)
- = 0 (sin permisos)

Cuando asignamos los permisos utilizando números debemos tener en cuenta que
primero se sumarán los valores y dicho resultado será el que se coloque, aquí una tabla
que muestra dichos valores:

Valor Permisos Descripción


0 --- El valor cero significa que no se han asignado permisos
1 --x sólo se ha asignado el de ejecución
2 -w- sólo permiso de escritura
3 -wx permisos de escritura y ejecución
4 r-- sólo permiso de lectura
5 r-x permisos de lectura y ejecución
6 rw- permisos de lectura y escritura
7 rwx permisos: lectura, escritura y ejecución

Los permisos por números se asignan en grupos de 3, es decir, para el propietario-


grupo-otros, no es factible asignar solo para uno o dos de ellos.

Ejemplos:

• rw------- (600) — Sólo el propietario tiene el derecho de leer y escribir.


• rw-r--r-- (644) — Sólo el propietario tiene los permisos de leer y escribir; el
grupo y los demás sólo pueden leer.
• rwx------ (700) — Sólo el propietario tiene los derechos de leer, escribir y
ejecutar el archivo.
• rwxr-xr-x (755) — El propietario tiene los derechos de leer, escribir y ejecutar;
el grupo y los demás sólo pueden leer y ejecutar.
• rwx--x--x (711) — El propietario tiene los derechos de lectura, escritura y
ejecución; el grupo y los demás sólo pueden ejecutar.
• rw-rw-rw- (666) — Todo el mundo puede leer y escribir en el archivo. ¡No es
una buena elección!
• rwxrwxrwx (777) — Todo el mundo puede leer, escribir y ejecutar. ¡Tampoco
es buena elección!
Utilizaremos el mismo ejercicio anterior para poder practicar con los permisos
utilizando números, el único cambio que haremos será utilizar otro archivo llamado
foto2.png:

Ejemplo Descripción Resultado


quitamos todos los permisos al archivo
$ chmod 000 foto2.png ----------
foto2.png
añadimos todos los permisos para el
$ chmod 700 foto2.png -rwx------
propietario
añadimos el permiso de ejecución para el
$ chmod 710 foto2.png -rwx—x---
grupo
añadimos el permiso de lectura para los otros
$ chmod 714 foto2.png -rwx—xr--
usuarios
eliminamos los permisos de lectura y escritura
$ chmod 114 foto2.png ---x—xr--
para el propietario
establecemos como unico permiso de lectura
$ chmod 444 foto2.png -r—r—r--
para los 3 grupos
establecemos los permisos de lectura y
$ chmod 555 foto2.png -r-xr-xr-x
ejecución para los 3 grupos
$ chmod 000 foto2.png quitamos todos los permisos -----------
añadimos los permisos de lectura y ejecución
$ chmod 501 foto2.png -r-x-----x
al propietario y ejecución a otros
añadimos permiso de lectura y ejecución al
$ chmod 550 foto2.png grupo y eliminamos permiso de ejecución a -r-xr-x---
otros
añadimos permiso de escritura y ejecución al
$ chmod 770 foto2.png propietario y grupo, y eliminamos permiso de -rwxrwx---
ejecución a otros
permite a cualquiera modificar el contenido e
$ chmod 666 foto2.png -rw-rw-rw-
incluso eliminar el archivo

Cambiando el propietario

Utilizamos el comando chown explicado líneas arriba:

# chown clases foto1.png # estamos cambiando el propietario del archivo, ahora el


usuario clases será el propietario del archivo foto1.png

# chown raul foto2.png # el usuario raul será el propietario del archivo foto2.png

Si vamos a cambiar el propietario de un directorio y con todos sus subdirectorios y


archivos en forma recursiva utilizaremos la opción –R:
# chown clases datos/ –R # el usuario clases sera el nuevo propietario de todos los
archivos y subdirectorios que estén dentro del directorio datos/

Cambiando el grupo

Utilizamos el comando chgrp explicado líneas arriba:

# chgrp clases foto1.png # estamos cambiando el propietario del archivo, ahora el


archivo foto1.png será del grupo clases

# chgrp raul foto2.png # el archivo foto2.png será del grupo raul

Si vamos a cambiar el grupo de un directorio y con todos sus subdirectorios y archivos


en forma recursiva utilizaremos la opción –R:

# chgrp clases datos/ –R # todos los archivos y sub directorios del directorio datos/
serán del grupo clases
Atributos en MS-DOS

Attrib

Este comando nos permite ver y modificar las propiedades de un archivo.

Hay varias maneras de usarlo:


Si se teclea attrib sin ningún parámetro ni modificador, mostrará todos los archivos y
sus propiedades en la unidad del prompt.
Podemos especificar una unidad:

attrib A:

Aquí mostrar todos los archivos y propiedades de un diskette. Podemos hacer que nos
muestre solo los archivos que cumplen con ciertas propiedades:

+R Este parámetro indica Solo lectura.


-R Este parámetro desactiva el parámetro anterior e indica que el archivo es editable.
+A Este parámetro indica que el archivo es de almacenamiento (un respaldo).
-A Este parámetro desactiva el anterior e indica que el archivo no es de
almacenamiento.
+H Este parámetro indica que el archivo esta oculto.
-H Este parámetro desactiva el anterior e indica que el archivo es visible.

Por ejemplo si queremos ver todos los archivos ocultos dentro de C:


C:\>attrib +H

o si queremos ver los de solo lectura (que suelen ser los mismos que los ocultos):
C:\>attrib +R

De la misma manera podemos cambiar las propiedades de un archivo:


por ejemplo, si queremos proteger un archivo, ocultándolo, digamos el archivo,
example.log que está dentro de C:
C:\>attrib example.log +H

o si queremos que un archivo de solo lectura sea editable:


C:\>attrib example.txt -R

Existen así mismo modificadores:

/s permite que la propiedad se aplique a la carpeta actual y sus subcarpetas.


/d (no siempre esta disponible), procesa una carpeta.
Shell (Intérprete de comandos)

Código que Ejecuta las llamadas al Sistema. Interfaz primaria entre el usuario y el
Sistema Operativo. mediante una ventana que espera ordenes escritas por el usuario en
el teclado (por ej. PRINT CARTA.TXT), los interpreta y los entrega al sistema
operativo para su ejecución. La respuesta del sistema operativo es mostrada al usuario
en la misma ventana. A continuación, El programa shell queda esperando más
instrucciones. Se interactúa con la información de la manera más sencilla posible, sin
gráficas, solo el texto crudo.

Captura de Bash
MS-DOS

Sistemas de protección

Mecanismo que controla el acceso de los programas o los usuarios a los recursos del
sistema. El SO se encarga de:

• Distinguir entre uso autorizado y no autorizado.


• Especificar los controles de seguridad a realizar.
• Forzar el uso de estos mecanismos de protección.
Sistema de comunicaciones

Para mantener las comunicaciones con otros sistemas es necesario poder controlar el
envío y recepción de información a través de las interfaces de red. También hay que
crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y
recibir información, y crear y mantener conexiones virtuales entre aplicaciones que
están ejecutándose localmente y otras que lo hacen remotamente.

Años 40
A finales de los años 40, con lo que podríamos llamar la aparición de la primera generación
de computadoras, se accedía directamente a la consola de la computadora desde la cual se
actuaba sobre una serie de micro interruptores que permitían introducir directamente el
programa en la memoria de la computadora (en realidad al existir tan pocas computadoras
todos podrían considerarse prototipos y cada constructor lo hacía sin seguir ningún criterio
predeterminado). Por aquel entonces no existían los sistemas operativos, y los programadores
debían interactuar con el hardware del computador sin ayuda externa. Esto hacía que el
tiempo de preparación para realizar una tarea fuera considerable. Además para poder utilizar
la computadora debía hacerse por turnos. Para ello, en muchas instalaciones, se rellenaba un
formulario de reserva en el que se indicaba el tiempo que el programador necesitaba para
realizar su trabajo. En aquel entonces las computadoras eran máquinas muy costosas lo que
hacía que estuvieran muy solicitadas y que sólo pudieran utilizarse en periodos breves de
tiempo. Todo se hacia en lenguaje de máquina.

Años 50
A principios de los años 50 con el objeto de facilitar la interacción entre persona y
computador, los sistemas operativos hacen una aparición discreta y bastante simple, con
conceptos tales como el monitor residente, el proceso por lotes y el almacenamiento
temporal.

Monitor residente

Su funcionamiento era bastante simple, se limitaba a cargar los programas a memoria,


leyéndolos de una cinta o de tarjetas perforadas, y ejecutarlos. El problema era encontrar una
forma de optimizar el tiempo entre la retirada de un trabajo y el montaje del siguiente.

Procesamiento por lotes

Como solución para optimizar , en una misma cinta o conjunto de tarjetas, de forma que se
ejecutaran uno a continuación de otro sin perder apenas tiempo en la transición.
Almacenamiento temporal

Su objetivo era disminuir el tiempo de carga de los programas, haciendo simultánea la carga
del programa o la salida de datos con la ejecución de la siguiente tarea. Para ello se utilizaban
dos técnicas, el buffering y el spooling.

Años 60
En los años 60 se produjeron cambios notorios en varios campos de la informática, con la
aparición del circuito cerrado la mayoría orientados a seguir incrementando el potencial de
los computadores. Para ello se utilizaban técnicas de lo más diversas:

Multiprogramación

En un sistema multiprogramado la memoria principal alberga a más de un programa de


usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra en
ejecución realiza una operación de E/S; en lugar de esperar a que termine la operación de
E/S, se pasa a ejecutar otro programa. Si éste realiza, a su vez, otra operación de E/S, se
mandan las órdenes oportunas al controlador, y pasa a ejecutarse otro. De esta forma es
posible, teniendo almacenado un conjunto adecuado de tareas en cada momento, utilizar de
manera óptima los recursos disponibles.

Tiempo compartido

En este punto tenemos un sistema que hace buen uso de la electrónica disponible, pero
adolece de falta de interactividad; para conseguirla debe convertirse en un sistema
multiusuario, en el cual existen varios usuarios con un terminal en línea, utilizando el modo
de operación de tiempo compartido. En estos sistemas los programas de los distintos usuarios
residen en memoria. Al realizar una operación de E/S los programas ceden la CPU a otro
programa, al igual que en la multiprogramación. Pero, a diferencia de ésta, cuando un
programa lleva cierto tiempo ejecutándose el sistema operativo lo detiene para que se ejecute
otro aplicación. Con esto se consigue repartir la CPU por igual entre los programas de los
distintos usuarios, y los programas de los usuarios no se sienten demasiado lentos por el
hecho de que los recursos sean compartidos y aparentemente se ejecutan de manera
concurrente.

Tiempo real

Estos sistemas se usan en entornos donde se deben aceptar y procesar en tiempos muy breves
un gran número de sucesos, en su mayoría externos al ordenador. Si el sistema no respeta las
restricciones de tiempo en las que las operaciones deben entregar su resultado se dice que ha
fallado. El tiempo de respuesta a su vez debe servir para resolver el problema o hecho
planteado. El procesamiento de archivos se hace de una forma continua, pues se procesa el
archivo antes de que entre el siguiente, sus primeros usos fueron y siguen siendo en
telecomunicaciones.

Multiprocesador
Permite trabajar con máquinas que poseen más de un microprocesador. En un
multiprocesador

Se denomina multiprocesador a un ordenador que cuenta con dos o más microprocesadores


(CPUs).

Gracias a esto, el multiprocesador puede ejecutar simultáneamente varios hilos


pertenecientes a un mismo proceso o bien a procesos diferentes.

Los ordenadores multiprocesador presentan problemas de diseño que no se encuentran en


ordenadores monoprocesador. Estos problemas derivan del hecho de que dos programas
pueden ejecutarse simultáneamente y, potencialmente, pueden interferirse entre sí.
Concretamente, en lo que se refiere a las lecturas y escrituras en memoria. Existen dos
arquitecturas que resuelven estos problemas:

La arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo a una parte
de la memoria. La arquitectura SMP, donde todos los procesadores comparten toda la
memoria. Esta última debe lidiar con el problema de la coherencia de caché. Cada
microprocesador cuenta con su propia memoria cache local. De manera que cuando un
microprocesador escribe en una dirección de memoria, lo hace únicamente sobre su copia
local en caché. Si otro microprocesador tiene almacenada la misma dirección de memoria en
su caché, resultará que trabaja con una copia obsoleta del dato almacenado.

Para que un multiprocesador opere correctamente necesita un sistema operativo


especialmente diseñado para ello. La mayoría de los sistemas operativos actuales poseen esta
capacidad.

Sistemas operativos desarrollados

Además del Atlas Supervisor y el OS/360, los sesenta marcaron el inicio de UNIX, a
mediados de los 60 aparece Multics, sistema operativo multiusuario - multitarea desarrollado
por los laboratorios Bell de AT&T y programado en PL/1 uno de los pocos SO desarrollados
en un lenguaje de alto nivel en aquel tiempo, luego del fracaso del proyecto, UNIX comienza
a desarrollarse a partir de este a finales de la década.

Años 70
Debido al avance de la electrónica, pudo empezar a crearse circuitos con miles de transistores
en un centímetro cuadrado de silicio, lo que llevaría, pocos años después, a producir los
primeros sistemas integrados. Ésta década se podría definir como la de los sistemas de
propósito general y en ella se desarrollan tecnologías que se siguen utilizando en la
actualidad. Es en los años 70 cuando se produce el boom de los miniordenadores y la
informática se acerca al nivel de usuario. En lo relativo a lenguajes de programación, es de
señalar la aparición de Pascal y C, el último de los cuales se creó específicamente para
reescribir por completo el código del sistema operativo Unix, convirtiéndolo en uno de los
pocos SO escritos en un lenguaje de alto nivel. En el campo de la programación lógica se dio
a luz la primera implementación de Prolog, y en la revolucionaria orientación a objetos,
Smalltalk.
Inconvenientes de los sistemas existentes

Se trataba de sistemas grandes y costosos, pues antes no se había construido nada similar y
muchos de los proyectos desarrollados terminaron con costos muy por encima del
presupuesto y mucho después de lo que se marcaba como fecha de finalización. Además,
aunque formaban una capa entre el hardware y el usuario, éste debía conocer un complejo
lenguaje de control para realizar sus trabajos. Otro de los inconvenientes es el gran consumo
de recursos que ocasionaban, debido a los grandes espacios de memoria principal y
secundaria ocupados, así como el tiempo de procesador consumido. Es por esto que se
intentó hacer hincapié en mejorar las técnicas ya existentes de multiprogramación y tiempo
compartido.

Características de los nuevos sistemas

Para solventar los problemas antes comentados, se realizó un costosísimo trabajo para
interponer una amplia capa de software entre el usuario y la máquina, de forma que el
primero no tuviese que conocer ningún detalle de la circuitería.

Sistemas operativos desarrollados

• MULTICS (Multiplexed Information and Computing Service): Originalmente era un


proyecto cooperativo liderado por Fernando Corbató del MIT, con General Electric y
los laboratorios Bell, que comenzó en los 60, pero los laboratorios Bell abandonaron
en 1969 para comenzar a crear el sistema UNIX. Se desarrolló inicialmente para el
mainframe GE-645, un sistema de 36 bits; después fue soportado por la serie de
máquinas Honeywell 6180.

Fue uno de los primeros sistemas operativos de tiempo compartido, que implementó un solo
nivel de almacenamiento para el acceso a los datos, desechando la clara distinción entre los
ficheros y los procesos en memoria, y uno de los primeros sistemas multiprocesador.

• MVS (Multiple Virtual Storage): Fue el sistema operativo más usado en los modelos
de mainframes -ordenadores grandes, potentes y caros usados principalmente por
grandes compañías para el procesamiento de grandes cantidades de datos-
System/370 y System/390 de IBM, desarrollado también por IBM y lanzado al
mercado por primera vez en 1974. Como características destacables, permitía la
ejecución de múltiples tareas, además de que introdujo el concepto de memoria
virtual y finalmente añadió la capacidad de que cada programa tuviera su propio
espacio de direccionamiento de memoria, de ahí su nombre.
• CP/M (Control Program/Monitor): Desarrollado por Gary Kildall para el
microprocesador 8080/85 de Intel y el Zilog Z80, salió al mercado en 1976,
distribuyéndose en disquetes de ocho pulgadas. Fue el SO más usado en las
computadoras personales de esta década. Su éxito se debió a que era portátil,
permitiendo que diferentes programas interactuasen con el hardware de una manera
estandarizada. Estaba compuesto de dos subsistemas:
o CCP (Comand Control Processor): Intérprete de comandos que permitía
introducir los mandatos con sus parámetros separados por espacios. Además,
los traducía a instrucciones de alto nivel destinadas a BDOS.
o BDOS (Basic Disk Operating System): Traductor de las instrucciones en
llamadas a la BIOS.
El hecho de que, años después, IBM eligiera para sus PCs a MS-DOS supuso su mayor
fracaso, por lo que acabó desapareciendo.

Años 80
Con la creación de los circuitos LSI -integración a gran escala-, chips que contenían miles de
transistores en un centímetro cuadrado de silicio, empezó el auge de los ordenadores
personales. En éstos se dejó un poco de lado el rendimiento y se buscó más que el sistema
operativo fuera amigable, surgiendo menús, e interfaces gráficas. Esto reducía la rapidez de
las aplicaciones, pero se volvían más prácticos y simples para los usuarios. En esta época,
siguieron utilizándose lenguajes ya existentes, como Smalltalk o C, y nacieron otros nuevos,
de los cuales se podrían destacar: C++ y Eiffel dentro del paradigma de la orientación a
objetos, y Haskell y Miranda en el campo de la programación declarativa. Un avance
importante que se estableció a mediados de la década de 1980 fue el desarrollo de redes de
computadoras personales que corrían sistemas operativos en red y sistemas operativos
distribuidos. En esta escena, dos sistemas operativos eran los mayoritarios: MS-DOS, escrito
por Microsoft para IBM PC y otras computadoras que utilizaban la CPU Intel 8088 y sus
sucesores, y UNIX, que dominaba en los ordenadores personales que hacían uso del
Motorola 68000.

Apple Macintosh

El lanzamiento oficial se produjo en enero de 1984, al precio de 2495 dólares. Muchos


usuarios, al ver que estaba completamente diseñado para funcionar a través de una GUI
(Graphic User Interface), acostumbrados a la línea de comandos, lo tacharon de juguete. A
pesar de todo, el Mac se situó a la cabeza en el mundo de la edición a nivel gráfico.

MS-DOS

En 1981 Microsoft compró un sistema operativo llamado QDOS que, tras realizar unas pocas
modificaciones, se convirtió en la primera versión de MS-DOS (MicroSoft Disk Operating
System). A partir de aquí se sucedieron una serie de cambios hasta llegar a la versión 7.1, a
partir de la cual MS-DOS dejó de existir como tal y se convirtió en una parte integrada del
sistema operativo Windows.

Años 90
GNU/Linux

En 1991 aparece la primer versión del núcleo de Linux. Creado por Linus Torvalds y un
sinfín de colaboradores a través de Internet. Este sistema se basa en Unix, un sistema que en
principio trabajaba en modo comandos, estilo MS-DOS. Hoy en día dispone de Ventanas,
gracias a un servidor grafico y a gestores de ventanas como KDE, GNOME entre muchos.
Recientemente GNU/Linux dispone de un aplicativo que convierte las ventanas en un
entorno 3D como por ejemplo Beryl. Lo que permite utilizar linux de una forma visual
atractiva.
Funciones básicas
Los sistemas operativos, en su condición de capa software que posibilitan y simplifica
el manejo de la computadora, desempeñan una serie de funciones básicas esenciales
para la gestión del equipo. Entre las más destacables, cada una ejercida por un
componente interno (módulo en núcleos monolíticos y servidor en micronúcleos),
podemos reseñar las siguientes:

• Proporcionar comodidad en el uso de un computador.


• Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para
los procesos (programas)
• Brindar una interfaz al usuario, ejecutando instrucciones (comandos).
• Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar
sin interferir con los servicios que ya se prestaban (evolutividad).

Un sistema operativo desempeña 5 funciones básicas en la operación de un sistema


informático: suministro de interfaz al usuario, administración de recursos,
administración de archivos, administración de tareas y servicio de soporte y utilidades.

Interfaces del usuario

Es la parte del sistema operativo que permite comunicarse con él de tal manera que se
puedan cargar programas, acceder archivos y realizar otras tareas. Existen tres tipos
básicos de interfaces: las que se basan en comandos, las que utilizan menús y las
interfaces gráficas de usuario.

Administración de recursos

Sirven para administrar los recursos de hardware y de redes de un sistema informativo,


como el CPU, memoria, dispositivos de almacenamiento secundario y periféricos de
entrada y de salida.

Administración de archivos

Un sistema de información contiene programas de administración de archivos que


controlan la creación, borrado y acceso de archivos de datos y de programas. También
implica mantener el registro de la ubicación física de los archivos en los discos
magnéticos y en otros dispositivos de almacenamiento secundarios.

Administración de tareas

Los programas de administración de tareas de un sistema operativo administran la


realización de las tareas informáticas de los usuarios finales. Los programas controlan
que áreas tiene acceso al CPU y por cuánto tiempo. Las funciones de administración de
tareas pueden distribuir una parte específica del tiempo del CPU para una tarea en
particular, e interrumpir al CPU en cualquier momento para sustituirla con una tarea de
mayor prioridad.

Servicio de soporte
Los servicios de soporte de cada sistema operativo dependerán de la implementación
particular de éste con la que estemos trabajando. Entre las más conocidas se pueden
destacar las implementaciones de Unix, desarrolladas por diferentes empresas de
software, los sistemas operativos de Apple Inc., como Mac OS X para las computadoras
de Apple, los sistemas operativos de Microsoft, y las implementaciones de software
libre, como Linux o BSD producidas por empresas, universidades, administraciones
públicas, organizaciones sin fines de lucro y/o comunidades de desarrollo.

Estos servicios de soporte suelen consistir en:

• Actualización de versiones.
• Mejoras de seguridad.
• Inclusión de alguna nueva utilidad (un nuevo entorno gráfico, un asistente para
administrar alguna determinada función, ...).
• Controladores para manejar nuevos periféricos (este servicio debe coordinarse a
veces con el fabricante del hardware).
• Corrección de errores de software.
• Otros.

No todas las utilidades de administración o servicios forman parte del sistema operativo,
además de éste, hay otros tipos importantes de software de administración de sistemas,
como los sistemas de administración de base de datos o los programas de
administración de redes. El soporte de estos productos deberá proporcionarlo el
fabricante correspondiente (que no tiene porque ser el mismo que el del sistema
operativo).

Monitores residentes

Fichas en lenguaje de procesamiento por lotes, con programa y datos, para ejecución
secuencial

Según fue avanzando la complejidad de los programas, fue necesario implementar


soluciones que automatizaran la organización de tareas sin necesidad de un operador.
Debido a ello se crearon los monitores residentes: programas que residían en memoria y
que gestionaban la ejecución de una cola de trabajos.

Un monitor residente estaba compuesto por un cargador, un Intérprete de comandos y


un Controlador (drivers) para el manejo de entrada/salida.

Sistemas con almacenamiento temporal de E/S


Se avanza en el hardware, creando el soporte de interrupciones. Luego se lleva a cabo
un intento de solución más avanzado: solapar la E/S de un trabajo con sus propios
cálculos. Por ello se crea el sistema de buffers con el siguiente funcionamiento:

• Un programa escribe su salida en un área de memoria (buffer 1).


• El monitor residente inicia la salida desde el buffer y el programa de aplicación
calcula depositando la salida en el buffer 2.
• La salida desde el buffer 1 termina y el nuevo cálculo también.
• Se inicia la salida desde el buffer 2 y otro nuevo cálculo dirige su salida al buffer
1.
• El proceso se puede repetir de nuevo.

Los problemas surgen si hay muchas más operaciones de cálculo que de E/S (limitado
por la CPU) o si por el contrario hay muchas más operaciones de E/S que cálculo
(limitado por la E/S).

Spoolers

Hace aparición el disco magnético con lo que surgen nuevas soluciones a los problemas
de rendimiento. Se eliminan las cintas magnéticas para el volcado previo de los datos de
dispositivos lentos y se sustituyen por discos (un disco puede simular varias cintas).
Debido al solapamiento del cálculo de un trabajo con la E/S de otro trabajo se crean
tablas en el disco para diferentes tareas, lo que se conoce como Spool (Simultaneous
Peripherial Operation On-Line).

Sistemas Operativos Multiprogramados

Surge un nuevo avance en el hardware: el hardware con protección de memoria. Lo que


ofrece nuevas soluciones a los problemas de rendimiento:

• Se solapa el cálculo de unos trabajos con la entrada/salida de otros trabajos.


• Se pueden mantener en memoria varios programas.
• Se asigna el uso de la CPU a los diferentes programas en memoria.

Debido a los cambios anteriores, se producen cambios en el monitor residente, con lo


que éste debe abordar nuevas tareas, naciendo lo que se denomina como Sistemas
Operativos multiprogramados, los cuales cumplen con las siguientes funciones:

• Administrar la memoria.
• Gestionar el uso de la CPU (planificación).
• Administrar el uso de los dispositivos de E/S.

Cuando desempeña esas tareas, el monitor residente se transforma en un sistema


operativo multiprogramado.

Llamadas al Sistema Operativo


Definición breve: llamadas que ejecutan los programas de aplicación para pedir algún
servicio al SO.
Cada SO implementa un conjunto propio de llamadas al sistema. Ese conjunto de
llamadas es el interfaz del SO frente a las aplicaciones. Constituyen el lenguaje que
deben usar las aplicaciones para comunicarse con el SO. Por ello si cambiamos de SO, y
abrimos un programa diseñado para trabajar sobre el anterior, en general el programa no
funcionará, a no ser que el nuevo SO tenga el mismo interfaz. Para ello:

• Las llamadas correspondientes deben tener el mismo formato.


• Cada llamada al nuevo SO tiene que dar los mismos resultados que la
correspondiente del anterior.

Modos de ejecución en un CPU

Las aplicaciones no deben poder usar todas las instrucciones de la CPU. No obstante el
SO, tiene que poder utilizar todo el juego de instrucciones del CPU. Por ello, una CPU
debe tener (al menos) dos modos de operación diferentes:

• Modo usuario: el CPU podrá ejecutar sólo las instrucciones del juego restringido
de las aplicaciones.
• Modo supervisor: la CPU debe poder ejecutar el juego completo de
instrucciones.

Llamadas al Sistema

Una aplicación, normalmente no sabe dónde está situada la rutina de servicio de la


llamada. Por lo que si ésta se codifica como una llamada de función, cualquier cambio
en el SO haría que hubiera que reconstruir la aplicación.

Pero lo más importante es que una llamada de función no cambia el modo de ejecución
de la CPU. Con lo que hay que conseguir llamar a la rutina de servicio, sin tener que
conocer su ubicación, y hacer que se fuerce un cambio de modo de operación de la CPU
en la llamada (y la recuperación del modo anterior en el retorno).

Esto se hace utilizando instrucciones máquina diseñadas específicamente para este


cometido, distintas de las que se usan para las llamadas de función.

Bibliotecas de interfaz de llamadas al sistema

Las llamadas al sistema no siempre tienen una expresión sencilla en los lenguajes de
alto nivel, por ello se crean las bibliotecas de interfaz, que son bibliotecas de funciones
que pueden usarse para efectuar llamadas al sistema. Las hay para distintos lenguajes de
programación.

La aplicación llama a una función de la biblioteca de interfaz (mediante una llamada


normal) y esa función es la que realmente hace la llamada al sistema.

Interrupciones y excepciones
El SO ocupa una posición intermedia entre los programas de aplicación y el hardware.
No se limita a utilizar el hardware a petición de las aplicaciones ya que hay situaciones
en las que es el hardware el que necesita que se ejecute código del SO. En tales
situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a
dos condiciones:

• Algún dispositivo de E/S necesita atención.


• Se ha producido una situación de error al intentar ejecutar una instrucción del
programa (normalmente de la aplicación).

En ambos casos, la acción realizada no está ordenada por el programa de aplicación, es


decir, no figura en el programa.

Según los dos casos anteriores tenemos las interrupciones y la excepciones:

• Interrupción: señal que envía un dispositivo de E/S a la CPU para indicar que la
operación de la que se estaba ocupando, ya ha terminado.
• Excepción: una situación de error detectada por la CPU mientras ejecutaba una
instrucción, que requiere tratamiento por parte del SO.

Excepciones

Cuando la CPU intenta ejecutar una instrucción incorrectamente construida, la unidad


de control lanza una excepción para permitir al SO ejecutar el tratamiento adecuado. Al
contrario que en una interrupción, la instrucción en curso es abortada. Las excepciones
al igual que las interrupciones deben estar identificadas.

Clases de excepciones

Las instrucciones de un programa pueden estar mal construidas por diversas razones:

• El código de operación puede ser incorrecto.


• Se intenta realizar alguna operación no definida, como dividir por cero.
• La instrucción puede no estar permitida en el modo de ejecución actual.
• La dirección de algún operando puede ser incorrecta o se intenta violar alguno
de sus permisos de uso.
REPORTE

EQUIPO

ABSALON CRUZ NALLELY:

PROCESOS, YAMADAS AL SISTEMA

CRUZ PEREZ RICARDO:

1ª Y 2ª GENERACION DE LAS COMPUTADORAS

FLORES BRAVO MARIA CRISTINA:

DEFINICION Y CARACTERISTICAS

JUAREZ BLANCO ADRIANA GABRIELA:

VISTAS DE UN S.O. Y TAREAS

MARTINEZ MARTINEZ JONATHAN:

ACTIVIDAD CUESTIONARIO Y CRUCIGRAMA

PABLO CUAHUIZA ANDRES:

ARCGIVOS Y SHELL

ROJAS CONTRERAS DAVID:

RESUMEN Y PRESENTACION

URCID HERNANDEZ OSCAR:

3ª Y 4ª GENERACION DE COMPUTADORAS
Evaluación de la línea del tiempo

Nombre Alumno Matricula Calificacion


Jesus Aviles 200409989 10
Antonio Morales Cid 200422364 10
Victor Rogelio Vargas Montes 200332363 10
Ahiezer Hernandez Gonzales 200417024 10
Flores Bravo Maria Cristina 200417442 10
Jesus Castro Montealegre 200311332 10
Angel Armas Valdivia 200409184 10
Leticia Aragon Saldivar 200308136 10
Carlos Molina Ronquillo 200320998 10
Estrada Bautista Jose
Guadalupe 200208146 7
Oscar Zarate Villegas 200435140 10
Heriberto Hernadez Moreno 200417912 10
Tonatiuh Tewanhuey Tewatl 200431117 10
Tlachi Cuanenemi Juventino 200432625 10
Alberto Ramon Flores 200326241 10
Marin Monter Cristian Omar 200421643 10
Marisol Aragon Saldivar 200308135 10
Andres Pablo Cuahuizo 200324315 10
Anita D.C 200330764 6
Nancy Ortiz Gomez 200322996 10
Jonatan Matinez Martinez 200219600 10
Lizzet Huerta Herrero 10
Ricardo Cruz Perez 200431421 10
Oscar Urcid Hernandez 200524662 10
Roberto Carlos Fuentes 200313552 10
David Rojas Contreras 200501626 10
Amilcar De Rosas Rodriguez 200414653 10
Pedro de Jesus Lobato Alvarado 200420631 10
Juarez Blanca Adriana 200417284 10
Aguilar Mendoza Ulices 10
Jorge Adrian Flores Valencia 200313103 10
Rodolfo Daniel Flores Luna 200213197 10
Jose Ricardo Cisneros Cabrera 200310510 10
Perez Ayala Raul 200423386 10
Marco Antonio Martinez Cortes 200319989 10
Reyes Davila Gerardo 200429052 10
Evaluación de Crucigrama

Nombre Alumno Matricula Calificacion


Jesus Aviles 200409989 10
Antonio Morales Cid 200422364 10
Victor Rogelio Vargas Montes 200332363 10
Ahiezer Hernandez Gonzales 200417024 10
Flores Bravo Maria Cristina 200417442 10
Jesus Castro Montealegre 200311332 10
Angel Armas Valdivia 200409184 10
Leticia Aragon Saldivar 200308136 10
Carlos Molina Ronquillo 200320998 10
Estrada Bautista Jose Guadalupe 200208146 10
Oscar Zarate Villegas 200435140 10
Heriberto Hernadez Moreno 200417912 10
Tonatiuh Tewanhuey Tewatl 200431117 10
Tlachi Cuanenemi Juventino 200432625 10
Alberto Ramon Flores 200326241 10
Marin Monter Cristian Omar 200421643 10
Marisol Aragon Saldivar 200308135 10
Andres Pablo Cuahuizo 200324315 10
Anita D.C 200330764 10
Nancy Ortiz Gomez 200322996 10
Jonatan Matinez Martinez 200219600 10
Lizzet Huerta Herrero 10
Ricardo Cruz Perez 200431421 10
Oscar Urcid Hernandez 200524662 10
Roberto Carlos Fuentes 200313552 10
Amilcar De Rosas Rodriguez 200414653 10
Pedro de Jesus Lobato Alvarado 200420631 10
Juarez Blanca Adriana 200417284 10
Aguilar Mendoza Ulices 10
Jorge Adrian Flores Valencia 200313103 10
Rodolfo Daniel Flores Luna 200213197 10
Jose Ricardo Cisneros Cabrera 200310510 9.3
Perez Ayala Raul 200423386 10
Marco Antonio Martinez Cortes 200319989 10
Reyes Davila Gerardo 200429052 10
David Rojas Contreras 200501626 10
Chistian Marin 8
adrian 9
adriana grabriela Juarez B. 10
Evaliacion de cuestionario

Nombre Alumno Calificacion


Juan Jose Corona 10
Victor Rogelio Vargas Montes 10
Ricardo Cruz Perez 10
Maria Cristina Flores Bravo 10
Carlos Alberto Vazquez N. 9
Jesus Aviles Trinidad 10
Jonatan Matinez Martinez 10
Raul Perez Ayala 10
Antonio Morales Cid 10
Adeiana Gabriela Juarez B, 10
Nallely Absalon Cruz 10
Oscar Urcid Hernandez 10
Jose Alfredo Salazar Romero 3
Pedro de Jesus Lobato Alvarado 6
Cuitlahuac Parra Mendivil 6
Ulises Aguilar Mendoza 6
Alberto Ramos Flores 3
Jose G. Estrada Bautista 6
Marco Antonio Martinez Cortes 10
Marisol Aragon Saldivar 10
Oscar Zarate V. 10
Ahiezer Hernandez 10
Tonatiuh Tecanhuey 10
Nancy Ortiz Gomez 10
Alonso Reyes Varela 10
Jose Ricardo Cisneros Cabrera 10
Chistian Marin 10
Jorge Adrian Flores Valencia 10
Juventino Tlachi Cuanenemi 10
Leticia Aragon Saldivar 10
Lizzette Huerta Herrera 7
Andres Pablo 10
Amilcar de Rosas 10
Marco Antonio Martinez Cortes 10
Reyes Davila Gerardo 10
David Rojas Contreras 10
adrian 10