sistemas operativos: unix dra. cecilia poblete ibaceta...

45
SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta Última Revisión 2006

Upload: vutram

Post on 19-Oct-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

SISTEMAS OPERATIVOS: UNIX

Dra. Cecilia Poblete Ibaceta Última Revisión 2006

Page 2: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

TABLA DE CONTENIDOS SISTEMA OPERATIVO. ...................................................................................................... 3

Servicios del Sistema Operativo......................................................................................... 3 Clasificación de Sistemas Operativos................................................................................. 5 Capas del Sistema Operativo.............................................................................................. 6 Arranque de la Computadora.............................................................................................. 7

SISTEMA OPERATIVO UNIX. ........................................................................................... 9 Tipos de Archivos............................................................................................................. 10 Núcleo o Kernel................................................................................................................ 11 Shell. ................................................................................................................................. 12 Redireccionamientos. ....................................................................................................... 12 Conectores, Comodines y Filtros. .................................................................................... 13

CONCEPTOS DEL SISTEMA DE ARCHIVOS ................................................................ 15 Manejo del Sistema de Archivos ...................................................................................... 17

ADMINISTRACIÓN DE PROCESOS................................................................................ 20 Concepto de Proceso. ....................................................................................................... 20 Muerte por Inanición ........................................................................................................ 22 Bloqueo Mutuo................................................................................................................. 22 Casos de Bloqueo Mutuo.................................................................................................. 23 Condiciones para el Bloqueo Mutuo. ............................................................................... 24

ADMINISTRACIÓN DE DISPOSITIVOS. ........................................................................ 26 ADMINISTRACIÓN DE MEMORIA................................................................................. 30

Organización del Almacenamiento .................................................................................. 30 Administración del Almacenamiento ............................................................................... 30 Paginación por Demanda.................................................................................................. 40

EDITOR VI .......................................................................................................................... 42

2

Page 3: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

SISTEMA OPERATIVO. Es el software que controla los recursos como son la memoria, el almacenamiento en disco. A su vez el hardware de la computadora, necesita del Sistema Operativo para funcionar. Por lo que el Sistema Operativo es el enlace entre el hardware y el software de aplicación. El software de aplicación también necesita del Sistema Operativo para funcionar, como por ejemplo cuando se pide una impresión o el guardado de un archivo en el disco. El Sistema Operativo tiene servicios externos, a los cuales tiene acceso el usuario, y servicios internos que permiten el buen funcionamiento interno de la computadora

SERVICIOS DEL SISTEMA OPERATIVO.

1. Control de entradas y salidas. La información de entrada se direcciona hacia las áreas de proceso. Los resultados se direccionan hacia los dispositivos de salida, como son el monitor y la impresora. Algunos dispositivos de entrada o salida son el monitor, teclado, mouse, impresora, discos, El Sistema Operativo lleva un inventario de todos ellos y avisa si detecta alguna falla. El núcleo del Sistema Operativo es la parte que reside en memoria principal en todo momento y lleva a cabo la administración de la memoria y el manejo de entradas y salidas del disco. El núcleo del Sistema Operativo es la parte que reside en memoria principal en todo momento y lleva a cabo la administración de la memoria y el manejo de entradas y salidas del disco. 2. Control de espacio y tiempo para los procesos. Cada programa que se ejecuta debe contar con un espacio adecuado; el procesador es el que se encarga de realizar las instrucciones del programa. Es en las secciones de la memoria principal, donde se alojan los trabajos a procesar. Un trabajo no debe invadir el espacio de otro trabajo. Cuando un trabajo termina, el área de memoria puede reutilizarse. El Sistema Operativo también controla el tiempo de procesamiento de la información, asignando de manera uniforme tanto el espacio para que los programas se ejecuten, como el tiempo en que se realizan. Este control se vuelve crítico cuando se trata de Sistema Operativo con multiproceso (en que 2 o más CPU comparten la misma memoria y dispositivos) o con multiusuarios. 3. Asignación de los recursos del sistema. Existe un control que permite que diferentes recursos sean utilizados por distintos usuarios. Por ejemplo, la impresora, la memoria, el disco duro, la unidad de cinta, el CD, etc. 4. Asignación del área de almacenamiento. Los archivos son guardados tanto en disco duro como en discos flexibles, CD, cinta, etc. Ante esto el Sistema Operativo debe controlar el acceso a la información guardada, donde se puede guardar información nueva, cuando el disco no tiene espacio, etc.; es decir, controlar el almacenamiento de modo que sea eficiente y transparente para el usuario.

3

Page 4: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

A nivel de software, el Sistema Operativo controla los directorios y archivos del software de:

a. Aplicación o productividad, como Procesamiento de Datos (Word), Hojas de Cálculo (Excel), Bases de Datos (Access),Edición (Pagemaker)

b. Conectividad, como Gráficos (Adobe Illustrator), de Navegación (Explorer), de Correo (Internet Mail)

c. Propio del usuario para su manejo (crear, borrar, editar, etc) d. Sistema, como utilerías que permiten controlar el uso de los recursos del hadware

(Norton Utilities), controladores de dispositivos para ayudar al manejo de los periféricos y lenguajes de programación (C, Visual Basic, Java)

e. Educación, entretenimiento, mapas, simulación, etc. 5. Detección de fallas de equipo. Un componente en mal estado puede afectar todo el sistema. El Sistema Operativo comprueba el estado de cada componente cuando arranca la computadora, enviando un mensaje sobre el dispositivo que no está accesible (dañado o desenchufado). Ejemplos de sistemas operativos son: Windows NT, Windows 98, Mac OS, Unix, DOS, etc. Debido entonces, a las múltiples tareas que realiza un Sistema Operativo, éste tiene varios administradores, a nivel de software:

1. Administrador de Dispositivos 2. Administrador de Archivos 3. Administrador de Memoria 4. Administrador de Procesos

Y todos se comunican entre sí, además de con el usuario, a través de la Interfaz de Comandos del usuario. Por otra parte, se debe tener un Administrador de Sistema, que es una persona que realiza diferentes tareas de control, algunas de las cuales son: 1. Control de Hardware donde se considera la administración y el buen funcionamiento de los dispositivos físicos. Algunas cuestiones importantes son: el número de componentes (computadoras, impresoras, discos, memorias, etc.), dónde están ubicados, quiénes son los responsables con equipos asignados, cuáles son las plataformas existentes, etc. 2. Control de Software donde se considera el número de programas, su tipo, el número de licencias, etc. También puede crear, modificar o borrar archivos a nivel de la raíz. Además configura el sistema. 3. Control de Usuarios donde se considera el número de usuarios, cuáles son los privilegios asignados, a qué tienen acceso, etc. También crea grupos nuevos de trabajo y los usuarios nuevos determinando a qué grupos pertenecen. Además asigna las contraseñas iniciales para entrar al sistema y, en caso que se olvide, permite asignar uno nuevo.

4

Page 5: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

4. Control de la Seguridad que se mantiene a través de políticas y procedimientos muy bien especificados; todo lo necesario desde la entrada al centro donde se encuentran las computadoras hasta que la información sea accesada sólo por quienes están autorizados para ello, que de la información general, no pueda inferirse información confidencial, etc. Por esto es que se determinan los identificadores (ID) y contraseñas (passwords). En caso que se trate de una red de computadoras, el administrador deberá realizar además, las tareas propias de dicha red. Por ser el Administrador de Sistemas el “dueño” de los archivos, en el sentido de ser un usuario privilegiado, con todos los permisos en todos los archivos, debe ser una persona que tenga altas cualidades de honestidad, liderazgo, administrador, revisor, etc.

CLASIFICACIÓN DE SISTEMAS OPERATIVOS.

1. Según el tiempo de respuesta y la forma de meter los datos al sistema: a) Sistemas por Lotes o Batch: procesos que se realizaban en serie, sin la intervención

del usuario, por medio de tarjetas perforadas. Un “lote” de tareas hechas en un determinado tiempo. La eficiencia del Sistema Operativo se medía en “producción”: tantas tareas en tanto tiempo. En un principio, el administrador y no el usuario, era quien “corría” estos trabajos en lotes. Actualmente se usan muy poco y los comandos se dan a través de llamadas de ejecución, como nóminas, procesos de contabilidad, etc.

Como la diferencia entre el tiempo de proceso (en nanosegundos) y el tiempo de acceso a

discos (en milisegundos) era mucha, se pensó en “aprovechar” los tiempos muertos del procesador (que estaba en espera), ejecutando uno o más trabajos; incluso se llegó a tener en ejecución hasta 12 trabajos “simultáneos”. Surge entonces el concepto de “tiempo compartido”. Los usuarios no tenían todavía acceso a las computadoras, sólo los administradores podían manejarlas.

b) Sistemas Interactivos o de Tiempo Compartido: varios usuarios interactúan con la

computadora a través de comandos desde una terminal; a cada usuario se le asigna una “rebanada de tiempo”. Estos Sistema Operativo pueden ser con comandos de caracteres o gráficos.

c) Sistemas en Tiempo Real: se usan en entorno de tiempo crítico, como vuelos

espaciales, aeropuertos o procesos industriales., donde hay que tomar decisiones inmediatas.

d) Sistemas Híbridos: como una combinación de sistemas en lotes e interactivos. Esto

es, son interactivos, pero si hay poca carga, aceptan trabajos en lote. 2. Según el Número de Usuarios:

a) Monousuarios: el Sistema Operativo maneja los trabajos en secuencia a partir de un solo usuario y una sola tarea. Es poco flexible y de poca capacidad. El DOS (1981) tiene un significado histórico como el principal Sistema Operativo para una

5

Page 6: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

generación de microcomputadoras. El Windows 3.0 (1990) estandarizó una interfaz gráfica con base en ventanas

b) Multiusuarios:

b.1. Sistema Operativo en Red que administra un conjunto de computadoras conectadas entre sí, para compartir tanto recursos de software como de hardware. b.2. Sistema Operativo Multiusuarios con multiprogramación (un CPU procesa varios programas que están al mismo tiempo en la memoria principal, intercalando su ejecución según solicitudes de E/S con solicitudes de CPU). También se le conoce como Multitarea o Programación Concurrente.

CAPAS DEL SISTEMA OPERATIVO

Con el desarrollo de las redes, hubo muchos dispositivos diferentes, por lo cual la Organización Internacional de Estándares (ISO) se dedicó a crear una arquitectura de red para las interfaces de comunicación de datos. El llamado Modelo Referencial OSI, sirve como modelo para definir los servicios que una red debe proporcionar a sus usuarios. Este modelo que tiene 7 capas, es software que maneja la transmisión de datos de una terminal o de un programa de aplicación, a otro. Cada una de las capas es independiente de las otras, excepto hacia la de “abajo” a la cual le pasa información.

7 Capa de Aplicación 6 Capa de Presentación 5 Capa de Sesión 4 Capa de Transporte 3 Capa de Red 2 Capa de Enlace de Datos 1 Capa Física

Cuando el usuario indica una orden de transmisión de datos, se “pone en contacto” con la Capa 7; esta y cada una de las capas subsecuentes, van “pasando” hacia la capa inferior hasta llegar a la Capa 1, donde realmente (de manera física) se realiza la transmisión propiamente tal. Las capas son:

Capa de Aplicación: donde se administran las aplicaciones distribuidas. Contiene las funciones para la administración de la red, da la interfaz para los usuarios y se encarga del formato de los datos, antes de empezar a pasarlos hacia las capas inferiores.

Capa de Presentación: Donde se definen los formatos, la compresión y la codificación

(encriptado) para el intercambio de aplicaciones y para la transformación de datos.

Capa de Sesión: se usa para conectar al usuario y transferir los datos a lo largo de la línea de comunicación, manteniendo una conexión lógica. controla el diálogo entre dos sistemas finales, el cual puede ser simultánea o alternativo. Para el control de fallas, usa varios puntos de control a fin de retransmitir los datos entre los dos puntos donde

6

Page 7: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

sucedió el error. Se parece mucho a la capa de transporte, incluso el protocolo TCP/IP, los combina como uno solo.

Capa de Transporte: da un mecanismo confiable para el intercambio de datos entre

computadoras, asegurando que los datos vayan libres de errores, en secuencia, sin pérdidas y sin redundancia. Un protocolo usado en esta capa es el Protocolo de Control de Transmisión (TCP).

Capa de Red: que da la transferencia de información entre computadoras, a través de

un tipo de red de comunicaciones. El servicio de red establece, mantiene y conecta las conexiones, especificando la dirección destino, las posibles rutas y prioridades de envío.

Capa de Enlace de Datos: donde se intenta hacer confiable el enlace físico mediante la

activación, mantenimiento y desactivación de los enlaces. Esta capa proporciona el servicio de la detección y control de errores. Los datos se transmiten por bloques o marcos y cada bloque se identifica por un encabezado y un registro final propios que permiten manejar el enlace, y otros datos opcionales. Hay marcos que llevan datos de usuarios, marcos que controlan los servicios de enlace y marcos que tienen funciones suplementarias de control de los enlaces.

Capa Física: se refiere a la interfaz entre un dispositivo de transmisión de datos y un

medio de transmisión; esto es, tiene que ver con los conectores, cables de transmisión, niveles de voltaje, velocidad de datos, distancias alcanzables, etc. Es el único nivel preocupado por el hardware.

ARRANQUE DE LA COMPUTADORA.

1. Encendido: se enciende la computadora o se le da Reset, y empieza a ejecutarse una serie de tareas secuenciales. Actualmente el proceso de apagado del sistema también incluye una serie de pasos, por lo que si el apagado anterior se hizo correctamente, el siguiente arranque será más rápido; si el apagado anterior no se realizó correctamente o hubo una falla de energía, el sistema tratará de recuperarse a un estado consistente, antes de iniciar el arranque en sí. 2. Corre el programa de inicialización: se carga la dirección del iniciador ROM donde se guarda un código (que no se puede modificar) el cual deberá ejecutarse. 3. Autodiagnóstico de encendido: se prueba la RAM y el hardware a fin de detectar que la conexión de los dispositivos esté bien hecha. 4. Carga del Sistema Operativo: se almacena en memoria el cargador del Sistema Operativo que está en la dirección de arranque, le da el control al cargador, para que lleve a memoria algunos componentes del Sistema Operativo que están en una parte determinada del disco, de modo que permite que quede residente (siempre en memoria). 5. Comprobación de la configuración: el procesador lee los datos de configuración para iniciar.

7

Page 8: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

6. Listo para recibir órdenes: se inicia el proceso de Shell; esto es, el usuario interactúa con la máquina indicando su login y contraseña (cuando se trata de sistemas multiusuarios).

8

Page 9: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

SISTEMA OPERATIVO UNIX.

Unix es un Sistema Operativo creado en los años 70 por un grupo de científicos de los Laboratorios Bell, quienes no tenían permiso para competir en el campo de la informática, por lo que la copia de este sistema fue puesta a disposición de las universidades para su empleo en la enseñanza y en la investigación. El haber puesto el sistema a nivel público, Unix pasó a ser un sistema de fuente abierta; es decir, el código fuente está disponible para cualquier persona que quiera mejorarlo, por lo que actualmente existen muchas versiones Unix, e incluso clones como Linux.

Unix es un Sistema Operativo multitarea; esto es, un procesador puede estar realizando a la vez, varias aplicaciones que estén residentes en memoria, intercambiando la ejecución con las llamadas de entrada y salida (E/S). También se le llama Multiprogramación.o Programación Concurrente.

Además Unix es un Sistema Operativo multiusuario; esto significa que puede haber más de una persona usando un computador a la vez. Los usuarios se conectan al mismo tiempo a un mismo CPU a través de terminales tontas (que no usan su propio CPU, sino el de otra máquina que es de uso común para todos). Ante esto es necesario proteger los archivos de cada usuario, del manejo por parte de otros. Por esto se tienen los modos de acceso y los permisos de archivos.

Es necesario considerar que Unix es sensible a las mayúsculas; esto significa que las mayúsculas son diferentes a las minúsculas, lo cual hay que tener en cuenta al teclear el login o identificador del usuario, y su contraseña o password, mismos que serán validados por el sistema, para permitir o no el acceso al mismo.

En Unix tanto los archivos como los directorios "pertenecen" a un usuario en particular, o son compartidos entre usuarios y grupos de usuarios (en la mayoría de los sistemas se permite que otros usuarios puedan leer los archivos, pero no modificarlos ni borrarlos) Un grupo en particular, que es un conjunto de usuarios definido por el administrador del sistema, según intereses afines. Cada usuario pertenece al menos a un grupo cuando es creado. El administrador del sistema puede permitir que un usuario pertenezca a más de un grupo. Los grupos usualmente son definidos por el tipo de usuarios que acceden a la maquina. Por ejemplo, los usuarios pueden ser divididos en los grupos estudiantes, profesores. Hay también unos pocos grupos definidos por el sistema (como bin y admin) los cuales son usados por el propio sistema para controlar el acceso a los recursos, y a los cuales los usuarios normales no tienen acceso.

Cada archivo en Unix tiene los llamados Bits de Protección o Permisos, que consisten en una cadena de 9 caracteres (3 grupos de usuarios, cada uno con 3 permisos) indica los permisos de lectura (r), escritura (w) y ejecución (x) que puede o no tener cada uno de los grupos de usuarios, a saber el propietario (own), el grupo (group) y los otros (others). Por lo tanto con estos permisos se sabrá quién tiene derecho a leer, escribir o ejecutar el archivo (de cualquier tipo) de que se trate. Estos permisos pueden ser modificados.

9

Page 10: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

TIPOS DE ARCHIVOS

La parte más importante de cualquier sistema de cómputo son los datos; es decir, la información que los programas almacenan y manipulan. Unix tiene un sistema de archivos cuyo trabajo es conservar toda la información que se almacene en la computadora, incluyendo programas, documentos, bases de datos, textos, etcétera. En Unix el término "archivo" se refiere a cualquier fuente de entrada o destino de salida, no sólo a un depósito de datos. El espacio visible a los usuarios se basa en una estructura de árbol, con la raíz en lo alto. Los archivos y los directorios se colocan debajo de la raíz. En realidad, algunos de los directorios en el árbol de archivos están físicamente ubicados en distintas particiones del disco, sobre diferentes discos y eventualmente en diferentes computadoras. Cuando una de estas particiones del disco está ligado con el árbol de archivos en el directorio conocido como punto de montaje (mount point); a dicho punto de montaje y a todos los directorios inferiores, se le conoce como el Sistema de Archivos. En el Sistema de Archivos de Unix existen 3 tipos de archivos: Directorios, Archivos Ordinarios y Archivos Especiales. Cada archivo tiene un nombre y debe encontrarse en alguna parte de la estructura arborescente. Las trayectorias de acceso a un archivo incluyen (/) como separadores entre los nombres de directorios. Hay varios casos:

a. Si la trayectoria indicada inicia con una diagonal (/), significa que debe buscarse desde la raíz. Esta trayectoria se llama Ruta Absoluta. Por ejemplo /u/curso20

b. Si la trayectoria inicia con un nombre, el sistema buscará “hacia abajo” del directorio “actual” de trabajo. Esta trayectoria que no empieza en la raíz, se llama Ruta Relativa. Por ejemplo dir1/dir11/carta

c. Si la trayectoria inicia con .. (subir al padre), se moverá hacia arriba. Por ejemplo ../../demos/demo1

Los archivos son:

d directorios o archivos ordinarios

b archivo especial en bloques (por ejemplo /dev/mt0 es una cinta) c archivo especial de caracteres (por ejemplo /dev/tty es una terminal) p archivo con tubería (ductos) con nombre

Los Directorios son archivos que permiten mantener la estructura jerárquica del sistema de archivos, por lo tanto los directorios pueden tener archivos o directorios dependientes, mismos que son llamados hijos, siendo la raíz de cada subárbol, el nodo llamado padre de dicho subárbol. El directorio Raíz (root), indicado por una diagonal (/), es el padre de todos los demás directorios y archivos dependientes de él. El “dueño” del root es el superusuario que por lo general es una persona que administra todo el sistema.

10

Page 11: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

Los permisos en un directorio significan: 1. Lectura: permite obtener un listado del contenido de un directorio 2. Escritura permite crear nuevos archivos o directorios o borrar los existentes 3. Ejecución permite cambiarse a los directorios existentes, para buscar algún archivo específico.

Algunos directorios especiales son:

/ raíz /bin programas ejecutables (binarios) /dev dispositivos /etc misceláneo /etc/passwd archivo de paswords (palabras clave) /tmp temporales que se limpian cuando el sistema se reinicia /usr usuarios del sistema /usr/lib librerias para C, Fortran, etc /usr/spool programas de comunicación /Unix forma ejecutable del Sistema Operativo

Los Archivos Ordinarios son aquellos en los que el usuario guarda su información y generalmente cada usuario crea sus archivos en su propio directorio de trabajo. Los Archivos Especiales son los controladores de dispositivos que proporcionan la interfaz con el hardware de entradas y salidas. En su mayor parte residen en el directorio /dev El disco se organiza en bloques de 512 bytes cada uno y los archivos de usuario se guardan utilizando una lista ligada. Si es el caso, el administrador del sistema puede compactar el disco, cuando éste está muy fragmentado. Los permisos en un archivo significan:

1. Lectura permite leer el contenido de un archivo 2. Escritura permite escribir o modificar un archivo 3. Ejecución permite transformar los archivos en comandos o mandatos.

Cuando algún archivo tiene el permiso de ejecución con una letra s, está indicando que cuando se ejecute dicho archivo, se tomarán los permisos del propietario. Es el caso del archivo /etc/passwd. Esto significa que el propietario (el superusuario para el caso), permite que los usuarios puedan cambiar sus propios password, al ejecutar el archivo passwd. Este bit de permiso es el llamado setuid.

NÚCLEO O KERNEL.

Es la parte central del Sistema Operativo que está compuesta por programas que hacen las “llamadas al sistema” cuando se debe responder a una solicitud hecha por un proceso. Los procesos hacen llamadas al sistema cuando requieren servicios relativos a los archivos y operaciones de Entrada/Salida. Es el Núcleo el que se encarga de administrar la memoria, de administrar los procesos (es el que asigna el procesador a cada tarea), de administrar las operaciones de E/S y del reloj del

11

Page 12: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

sistema. Además. Debe estar residente siempre en la memoria principal porque señala los límites de cada uno de los programas que se estén ejecutando y supervisa que no haya traslape de información..

SHELL.

Es el intérprete de comandos que lee las líneas tecleadas por el usuario y las pasa al Kernel o Núcleo donde estos comandos o mandatos, son ejecutados. El shell no reside en la memoria principal y existen varias versiones (Bourne, Berkeley C y Korn). Es el shell el que presenta el prompt ($) para indicar que está listo para recibir una orden o comando (nombre de archivo ejecutable). El shell asigna a cada programa, 3 archivos: Entrada Estándar (teclado), Salida Estándar (monitor) y Error Estándar (monitor), y los 3 se pueden redireccionar. Por tratarse de archivos de entrada/salida, éstos tienen un Descriptor. Los números descriptores de estos archivos estándares son:

a) 1 para la entrada estándar b) 2 para la salida estándar c) 0 para el error estándar

El shell incluye funciones para controlar el flujo, o sea se pueden escribir programas con estructuras como if-then-else, while, for. El Shell reconoce varios metacaracteres, como:

; que es un separador de instrucciones, que hace que los mandatos se ejecuten secuencialmente, como si se hubieran escrito línea tras línea.

( ) que sirven para agrupar órdenes > y >> para redireccionar la salida < para redireccionar la entrada | que es un conector

REDIRECCIONAMIENTOS.

Cuando por alguna razón el usuario no quiere utilizar los archivos estándares de entrada, salida y error, puede utilizar la capacidad de redireccionar la información. Por ejemplo se puede redireccionar la salida cuando no se quieren los resultados en pantalla, sino guardados en un archivo. El intérprete de comandos o Shell es quien maneja las redirecciones. Hay 3 metacaracteres que sirven para esto: > redirecciona la salida sobre escribiendo el archivo indicado >> redirecciona la salida agregando al archivo indicado < redirecciona la entrada.

12

Page 13: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

Ejemplo: ls > lista indica que el listado del directorio actual no se requiere en la pantalla,

sino que se redireccione al archivo llamado lista. Si este archivo no existe, se crea; en caso de que exista, su contenido será sobrescrito.

ls >> lista indica que el listado del directorio actual no se requiere en la pantalla, sino que se redireccione al archivo llamado lista. Si este archivo no existe, se crea; en caso de que exista, el resultado del comando será agregado a su contenido.

No sólo puede ser redireccionada la salida estándar, también puede ser redireccionada la entrada estándar usando el símbolo "<". Ejemplo: el comando sort < lista es equivalente a sort lista, es decir se desea un ordenamiento de las líneas que componen el archivo llamado lista. Al redireccionar la entrada usando el metacaracter < el shell se comporta como si los datos del archivo fueran tecleados por la entrada estándar. Mientras que al no usar el redireccionamiento, el shell lee los datos a ordenar desde el archivo lista.

CONECTORES, COMODINES Y FILTROS.

1. Pipes, Entubamientos, Ductos o Conectores Muchas veces se requiere que la salida de un proceso, sea la entrada al proceso que sigue. Para esto sirven los pipes, también llamados conectores o ductos, simbolizados con el caracter de barra vertical ( | ). Por ejemplo: obtener el número de archivos en un directorio. Esto se puede hacer de dos modos diferentes.

Modo 1.

Se pide la lista larga para que cada archivo quede en una línea diferente y se direcciona a otro archivo

ls –l > total Del archivo total se cuenta el número de líneas wc total

Modo 2. Se pide la lista larga para que cada archivo quede en una línea diferente y de ese resultado se cuentan las líneas obtenidas.

ls –l | wc –l En el ambiente de Unix, los conectores usan la salida estándar de un comando (archivo estándar stdout) como la entrada estándar de otro comando (archivo estándar stdin). Es conveniente tener en cuenta que la redirección y el uso de pipes son características proporcionadas por el intérprete de comandos (Shell), que proporciona estos servicios mediante el uso de los llamados metacaracteres ">", ">>" y "|".

13

Page 14: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

2. Comodines. Una característica importante de la mayoría de los interpretes de comandos en Unix es la capacidad para referirse a más de un archivo usando caracteres especiales, mediante los llamados comodines El comodín "*" hace referencia cualquier carácter o cadena de caracteres en el archivo. Por ejemplo, cuando usa el carácter "*" en el nombre de un archivo, el intérprete de comandos lo sustituye por todas las combinaciones posibles que se encuentren en los nombres de archivo en el directorio referido. Ejemplo: ls a* se refiere a listar todos los archivos cuyo nombre empiece con a ls *a se refiere a listar todos los archivos cuyo nombre termine con a ls *a* se refiere a listar todos los archivos cuyo nombre incluya una a El proceso de la sustitución de "*" en nombres de archivos es llamado Expansión de Comodines y es efectuado por el intérprete de comandos. Esto significa que los comandos individuales, como ls, nunca consideran al "*" como un parámetro. Es el intérprete quien expande los comodines para incluir todos los nombres de archivos que se adaptan a lo solicitado. El uso de este comodín no incluye los nombres de archivos que comiencen con un punto ("."). Estos archivos son tratados como "ocultos", porque como una medida de seguridad, no se muestran en un listado normal con el comando ls. Para verlos es necesario indicar el parámetro a (ls –a). El comodín "?" hace referencia a un único carácter. Ejemplo:

ls a? se refiere a listar todos los archivos cuyo nombre empiece con a y sólo tenga 2 caracteres de largo en su nombre

ls ??a se refiere a listar todos los archivos cuyo nombre termine con a y sólo contenga 3 caracteres de largo en su nombre

3. Filtros Un filtro es un programa que lee datos de la entrada estándar, los procesa de alguna forma, y devuelve los datos procesados por la salida estándar. Ejemplo: Listar todas las líneas del archivo llamado Archi, que contengan la palabra de: cat archi | grep de Nótese que al resultado del comando cat (que muestra el contenido del archivo), se

le aplica el filtro grep. El comando sort también es un filtro que ordena los datos de entrada y envía el resultado a la salida determinada. El comando cat es más simple, porque no hace nada con los datos de entrada, sino que sólo los envía a la salida. Sirve para ver el contenido de un archivo.

14

Page 15: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

CONCEPTOS DEL SISTEMA DE ARCHIVOS El disco que sirve para el almacenamiento de la información, se particiona; es decir, se divide en partes disjuntas (que no tienen nada en común), cada una de las cuales se llama partición o Volumen. Cada partición tiene un nombre propio y es manipulada por el sistema Operativo como una unidad lógica e independiente. Cuando un disco no se particiona, de todos modos se dice que tiene una única partición. Cuando se habla de Particiones Extendidas, se trata de particiones que ocupan más de un disco. Dentro de cada partición se almacena un Sistema de Archivos. Hay particiones para el arranque del sistema operativo, particiones sólo para datos, particiones para el intercambio de páginas de memoria, etc. Un Sistema de Archivos es la estructura que permite organizar la información en una computadora. El tamaño de cada Sistema de Archivos se mide en Bloques. Un Bloque es una agrupación lógica de sectores de disco, y es la unidad mínima usada para la transferencia de información que usa dicho Sistema de Archivos. El tamaño del bloque puede variar de un Sistema de Archivos a otro, pero dentro de un mismo Sistema de Archivos, todos los bloques son del mismo tamaño. También se habla de Agrupación que es un número fijo de bloques para almacenar la información, pero las Agrupaciones y los bloques muy grandes, producen Fragmentación Interna. O sea que aunque sobre espacio en los bloques, falta espacio para nuevos archivos. Cuanto menor sea el tamaño del bloque podría evitarse la Fragmentación Interna, pero habrá que hacer más accesos a disco. Habrá que realizar accesos a disco para traer la información del disco a la memoria donde será procesada, y para llevar la información de la memoria al disco donde será almacenada. El acceso a discos normalmente es una operación muchísimo más lenta que la velocidad de proceso del CPU. Ejemplo: Los archivos (representados por X) son guardados en bloques en el disco. En total hay 4 bloques de 10 Kb cada uno. Cuando se desea guardar otro archivo de tamaño menor a 10 Kb, ya no hay espacio aunque si “se vea” que hay. Esto es por la Fragmentación Interna producida.

XXXXXXXXXX 5Kb Bloque 1 5Kb XXXXXXXXXXXXXXXXXXX 5Kb Bloque 2 5Kb XXXXXXXXXXXXXXXXXXX 5Kb Bloque 3 XX 5Kb XXXXXXXXXXXXXXXXXXX 5Kb Bloque 4 XXXXXXXXXXXXXXXXXX 5Kb

15

Page 16: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

En Unix, cada Sistema de Archivos cuenta con las siguientes características: a) Existe una estructura jerárquica arborescente, en donde el nodo principal es el

directorio llamado raíz (representado por "/") y cada uno de los niveles del árbol representa a los directorios.

b) Hay consistencia en el manejo de archivos. c) Existe protección para los datos de los archivos. d) Se hace el manejo de los dispositivos periféricos considerándolos como archivos.

La estructura del Sistema de Archivos consiste en: 1. El bloque de boot ocupa la parte del principio del Sistema de Archivo, por lo regular el primer sector, y puede contener el código de boot o de arranque. 2. El superbloque describe el estado de un Sistema de Archivos. Contiene información acerca del tamaño de los bloques, la lista de bloques libres disponibles, el índice del siguiente bloque libre en la lista de los mismos, el tamaño, el total y la lista de los i-nodos, el índice del siguiente i-nodo libre, los campos de bloqueo de elementos de las listas de bloques libres y de i-nodos libres. Estos campos se emplean para llevar el Control del Espacio en Disco que se requiere cuando se realiza una petición de bloque o de i-nodo libre; también contiene una bandera de control que sirve para indicar si el superbloque ha sido modificado o no. 3. La lista de i-nodos se encuentra a continuación del superbloque. Los i nodos (también llamados inodos o descriptores), contienen la descripción física de los archivos. Cada archivo tien su propio descriptor, por lo que el número de descriptores implica el número máximo de archivos que puede haber en un Sistema de Archivos. En esta lista, durante el proceso de arranque del sistema, el kernel lee la lista de inodos del disco y carga una copia en memoria, conocida como tabla de i-nodos. Las manipulaciones que hace el subsistema de archivos involucran a dicha tabla, pero no a la lista de i-nodos. Mediante este mecanismo se consigue una mayor velocidad de acceso a los archivos, ya que la tabla se encuentra cargada siempre en la memoria. Los campos de un i-nodo son los siguientes:

i) Identificador del propietario del archivo. ii) Tipo de archivo. iii) Tipo de acceso al archivo. ( aleatorio o secuencial) iv) Tiempos de acceso al archivo. v) Número de enlaces del archivo. vi) Entradas para los bloques de dirección donde se encuentra el archivo (13

apuntadores numerados del 0 al 12) vii) Tamaño del archivo.

La información contenida en el inodo, sirve para administrar los archivos; en el se guardan además la fecha en que el contenido del archivo fue modificado por última vez (escrito), la fecha última en que fue utilizado (leído o ejecutado) y la fecha en que el inodo fue modificado por última vez (por ejemplo, cuando se cambiaron los permisos).

16

Page 17: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

La tabla de i-nodos contiene la misma información que la lista de i-nodos, además de la siguiente información adicional:

a. El estado del i-nodo, el cual indica si está bloqueado, si hay algún proceso esperando a que el i-nodo se desbloquee, si la copia del i-nodo que hay en memoria difiere de la que está en el disco o si la copia de los datos del archivo que hay en memoria difiere de los datos que hay en el disco. b. El número de i-nodo, como los i-nodos se almacenan en disco en un arreglo lineal, al cargarlo en memoria, el kernel le asigna un número en función de su posición en el arreglo. c. Apuntadores a otros i-nodos cargados en memoria, el kernel enlaza los i-nodos sobre una cola de almacenamiento basada en la técnica de dispersión (cola hash), y sobre una lista libre. Las claves de acceso a la cola hash nos la dan el número de dispositivo lógico del i-nodo y el número de i-nodo. d. Un contador que indica el número de copias del i-nodo que están activas.

4.- El bloque de datos empieza a continuación de la lista i-nodos y ocupa el resto del Sistema de Archivos. En esta zona es donde se encuentra situado el contenido de los archivos a los que se hace referencia la lista de i-nodos. Cada uno de los bloques destinados a datos sólo puede ser asignado a un archivo, tanto si lo ocupa totalmente como si no.

MANEJO DEL SISTEMA DE ARCHIVOS

Existen varios tipos de archivos: 1. Archivos Ordinarios: Son los más comunes, son los que almacenan datos; es decir, pueden ser programas, archivos de texto, códigos fuente o cualquier cosa que pueda guardarse en cualquier lugar. El kernel soporta acceso secuencial (un bloque tras otro, en secuencia) y aleatorio (un bloque ubicado en una dirección determinada la cual se accesa de modo directo), en todos estos archivos. 2. Directorios tienen en común con los archivos ordinarios en que también contienen datos, sólo que en este caso el dato es una lista de otros archivos. 3. Archivos Especiales se identifican porque cada uno tiene un número de dispositivo mayor y uno menor (major and minor device number). El número mayor identifica al manejador del dispositivo que necesita el kernel para acceder al dispositivo. El número menor significa un parámetro dependiente del manejador del dispositivo usado típicamente para diferenciar entre diversos tipos de dispositivos soportados por el manejador, o distintos modos de operación. Por ejemplo, si el número mayor para las cintas, es el 100, y el número menor es 1, 2, 3, etc. cada una de 3 cintas se llamarán por 100-1, 100-2 y 100-3, respectivamente. Utilizan un i-nodo pero no bloques de datos. Representan dispositivos en los que se pueden leer o escribir cantidades arbitrarias de datos. Estoa archivos especiales incluyen puertos seriales, puertos paralelos, terminales y cintas. Los discos duros y flexibles también pueden ser accedidos de esta manera. Todos los archivos de este tipo están en el directorio /dev. 4. Entubamientos, Tuberías o Pipes que pueden o no tener nombres propios y trabajan bajo la política de FIFO (First In First Out). Son aquellos que permiten la comunicación y

17

Page 18: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

sincronización entre dos procesos ejecutándose en un mismo nodo de la red, son unidireccionales, por lo que si se requiere emitir y recibir, será necesario definir 2 tuberías. Se usan como regiones de memoria compartida entre los procesos que usan la tubería. 5. Ligas Duras, en realidad una liga no es un archivo, es un nombre adicional (o alias) para otro archivo. Cada archivo tiene al menos una liga, usualmente el nombre bajo el cual fue originalmente creado. Cuando se hace una nueva liga hacia un archivo, se crea un alias para este archivo. Estas ligas son necesarias cuando varios usuarios, van a compartir un mismo archivo. Una liga es indistinguible del archivo al cual está ligado; Unix mantiene el conteo de la cantidad de ligas que apuntan hacia un archivo en particular y no libera el espacio que ocupa el archivo hasta que la última liga es eliminada. La liga dura es una conexión directa entre archivos, por lo que ésta no puede existir a través de distintos sistemas de archivos. Es preciso distinguir entre archivos ligados (con ligas y alias) y archivos copiados. En los ligados un cambio afecta al original y al alias, mientras que en los copiados, un cambio sólo afecta al archivo donde se hizo el cambio. 6. Ligas Simbólicas son archivos que simplemente contienen el nombre de otro archivo, pero que se usan cuando los archivos se encuentran en distintos Sistemas de Archivos. Cuando el kernel trata de abrir o pasar a través de la liga, su atención es directamente hacia el archivo que apunta la liga simbólica, en vez de abrir la liga simbólica en sí. La diferencia entre las ligas, es que las duras son una referencia directa, mientras las simbólicas son una referencia a través de un archivo, las simbólicas son el archivo en sí, por lo tanto, tienen un propio dueño y permisos. 7. Sockets son conexiones bidireccionales entre procesos que les permiten comunicarse de una manera más rápida y fácil. Existen varios tipos de sockets en Unix, muchos de los cuales involucran el uso de una red. Los sockets son locales a un nodo en particular y son referenciados a través de un objeto en el Sistema de Archivos, en vez de un puerto en la red. Los archivos de sockets son visibles a los demás procesos como entradas en el directorio, estas entradas no pueden ser leídas o escritas por procesos que no estén involucrados en la conexión del socket. Tamaño de los Archivos. Para el acceso a los archivos, Unix mantiene una lista o arreglo de i-nodos. Cada i-nodo tiene un espacio para 13 apuntadores, enumerados del 0 al 12. Los 10 primeros apuntadores (del 0 al 9), se relacionan con los 10 primeros bloques (de 512 bytes cada uno) donde se guarda el archivo. Estos bloques de almacenamiento, no necesariamente están contiguos. Basta un acceso para llegar al archivo. El tamaño de dicho archivo es hasta de 5,120 bytes. Si el archivo sobrepasa los 5,120 (512 * 10) bytes, el apuntador número 10, señala otro bloque que contiene otra lista de direcciones de otros 128 bloques más. Esto se conoce como Bloque Indirecto. (Dirección de bloques) Si el archivo sobrepasa los 138 bloques (10 del primero y 128 del segundo), el apuntador número 11, señala una tercera lista de 128 bloques, cada uno conteniendo otros 128 bloques. Esto se conoce como Bloque Doblemente Indirecto. (Dirección de dirección de bloques)

18

Page 19: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

El Bloque Triplemente Indirecto se refiere a lo indicado por el apuntador 12: una dirección hacia 128 direcciones. Cada uno de éstas, contiene la dirección de un conjunto de otras 128 direcciones, mismas que contienen cada una la dirección de un bloque. (Dirección de dirección de dirección de bloques) Servicios para los Archivos.

1. Crear un archivo 2. Borrar el archivo 3. Abrir un archivo existente 4. Cerrar un archivo 5. Leer un archivo para llevar la información a memoria para su proceso 6. Escribir un archivo para llevar la información a disco para su almacenamiento 7. Cambiar el apuntador (lseek) para leer o escribir sobre el archivo, de forma directa.

El dispositivo donde se encuentra el archivo, debe se de acceso aleatorio (discos). 8. Manejar los atributos o características del inodo.

Servicios para los Directorios.

1. Crear un directorio 2. Borrar un directorio (vacío o con todo su contenido) 3. Abrir un directorio para manipular su contenido 4. Cerrar un directorio 5. Leer un directorio para ver su contenido 6. Cambiarse de directorio 7. Enlazar (poner alias, enlaces o ligas) archivos que se encuentren en diferentes

directorios

19

Page 20: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

ADMINISTRACIÓN DE PROCESOS.

CONCEPTO DE PROCESO.

Un proceso es un programa en ejecución; es una tarea que permite una entrada, hace alguna tarea o actividad determinada, produce una salida y queda en un estado final. Es una entidad activa que requiere de un conjunto de recursos para realizar su función. El resultado de un proceso debe ser independiente de la velocidad de cálculo y del entorno en que se encuentre, de tal forma que sea reproducible. Los procesos son propios del software y del hardware que se está utilizando (procesos del sistema), aunque también pueden ser definidos por el usuario (proceso del usuario). A cada proceso se le asigna una prioridad, misma que se revisa periódicamente y se despacha el proceso con la prioridad más alta. Todos los procesos entran en ejecución de uno por uno y es el procesador (CPU) el que va asignando recursos de tiempo a cada uno. A esta asignación se le llama Poleo. La prioridad se refiere al tiempo de atención o frecuencia de atención que el procesador le dedica a un proceso en particular. A mayor prioridad de un proceso, éste será ejecutado más rápido, lo que implica que otros procesos serán ejecutados de manera más lenta. La prioridad puede ser alterada, para favorecer a procesos que requieren efectuarse primero, pero siempre es en desmedro de los otros. Si varios procesos tienen la misma prioridad, se manejan en forma de Round Robin, en que a cada proceso se le asigna un quantum de tiempo; este periodo de tiempo varía entre 100 milisegundos y 1 o 2 segundos. Cuando a un proceso se le acaba su quantum, se suspende y el procesador atiende al siguiente proceso, y así sucesivamente hasta que vayan terminando de ejecutarse. Las computadoras actuales realizan multiprogramación; es decir, ejecutan varias tareas al “mismo tiempo”. Por ejemplo, mientras se ejecuta un programa de usuario, la computadora puede estar leyendo del disco e imprimiendo un documento en la impresora. En realidad, la CPU cambia de un programa a otro, ejecutando cada uno durante una fracción de segundos, y conmutando a otro inmediatamente para ejecutarlo también durante una fracción de segundo. Con este hecho, al usuario se le proporciona cierta sensación de ejecución paralela, como si el computador realizase varias tareas al “mismo tiempo”. Aunque, estrictamente, la CPU ejecuta en un determinado instante un solo programa, durante un segundo puede haber trabajado con varios de ellos, dando una apariencia de paralelismo (al mismo tiempo). Es en estos casos cuando se tiende a hablar de seudoparalelismo, indicando el rápido intercambio de programas en la CPU. A nivel de hardware existe un paralelismo real, donde se realizan cálculos en la CPU a la vez que operan los dispositivos de E/S. Para un mejor control de las actividades paralelas, existe el modelo de procesos, según el cual todo el software de la computadora se organiza en procesos secuenciales (uno después de otro), o simplemente procesos. Si la CPU conmuta entre procesos, no es probable que un proceso que se vuelva ejecutar, lo haga en las mismas condiciones anteriores. Una CPU

20

Page 21: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

puede compartirse entre varios procesos empleando un algoritmo de planificación, que determina cuando se debe detener un proceso en ejecución para dar servicio a otro distinto. Los sistemas operativos modernos diseñados con una filosofía de kernel, y que emplean el concepto de proceso, permiten crear y destruir los procesos dinámicamente. En Unix la creación de procesos se realiza mediante la llamada al sistema fork, la cual crea una copia idéntica del proceso que hace la llamada (proceso padre), tras la cual el proceso hijo sigue su ejecución en paralelo con el proceso padre. El padre puede crear nuevos hijos, al igual que el propio hijo, que puede crear sus propios nuevos hijos. Se establece así una relación jerárquica de dependencia padre-hijo llamado árbol de procesos Los 3 estados básicos en que puede encontrarse un proceso son:

1. En ejecución (Running): El proceso está utilizando la CPU en el instante actual 2. Listo (Ready): El programa está en condición de ser ejecutado, pero está en espera

que se desocupe el CPU. 3. Bloqueado (Suspend): El proceso no se puede ejecutar ya que se encuentra a la

espera de un evento externo (como por ejemplo, la asignación de un dispositivo), incluso aunque la CPU se encuentre libre. Si es el caso, la CPU puede elegir otro proceso que esté listo para ponerlo en ejecución.

La parte del sistema operativo encarga de realizar la conmutación entre procesos, y de esta forma repartir la utilización de la CPU, se llama planificador. El modelo de procesos usa una tabla de procesos, con una entrada por cada proceso, que contiene información como el estado del proceso, la asignación de memoria, la hora de inicio, el tiempo utilizado por el proceso, etc. Los procesos utilizan los recursos del sistema, así que cuando dichos recursos son escasos, los procesos deben sincronizarse para evitar la Muerte por Inanición y los Bloqueos Mutuos. Cuando un proceso está usando un recurso, se dice que el proceso retiene al recurso. Cuando un proceso solicita un recurso, se dice que el proceso espera al recurso. Se dice que un proceso esté en espera de un recurso cuando requiere de dicho recurso para continuar. Si dicho recurso se le asigna, lo retendrá hasta que lo desocupe (en caso de que se le haya asignado totalmente, como ocurría con los sistemas operativos por lote), o hasta que se cumpla su tiempo (en caso de que se le haya asignado por tiempo, como ocurre actualmente con los sistemas operativos interactivos). El administrador debe vigilar que el tiempo de espera sea óptimo para evitar un bloqueo. Se dice que un proceso tiene retenido un recurso cuando está usándolo como parte de un proceso. Si dicho recurso es liberado, se pondrá a disposición para otros procesos. La liberación ocurre porque terminó de usarlo (sistemas operativos por lotes) o porque se le acabó el tiempo de uso (sistemas operativos interactivos). El administrador debe vigilar que el tiempo de retención sea óptimo para evitar un bloqueo.

21

Page 22: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

El proceso P1 espera el recurso R1

P

R

El proceso P1 retiene el recurso R1

P

R En los primeros sistemas operativos que eran por lote no existía tanto problema porque se indicaban todos los recursos que se iban a necesitar antes de iniciar el proceso. Por lo que el mismo sistema operativo daba la luz verde para el proceso, sólo cuando todos los recursos estaban reservados para dicho proceso. Como los sistemas actuales son interactivos, se tienen muchos más casos de posibles bloqueos por lo que se necesita hacer toda una administración de la disponibilidad de los recursos a compartir. Los bloqueos pueden ocurrir cuando un mismo recurso que no se puede sustituir por otro ni compartir, es requerido por otros procesos. Estos recursos son archivos, impresoras, unidades de cinta, discos y bases de datos.

MUERTE POR INANICIÓN

A la Muerte por Inanición también se le llama Posposición Indefinida y ocurre cuando un proceso no puede ejecutarse por estar esperando recursos que nunca estarán disponibles (una impresora que no existe, un disco caído, etc.). Se refiere entonces, a una espera “eterna” por parte de un proceso que requiere un recurso. Si el administrador no vigila los procesos que no se están realizando, y les asigna una prioridad más alta, dichos procesos se podrían quedar esperando para siempre por una correcta combinación de recursos.

BLOQUEO MUTUO

El Bloqueo Mutuo o Abrazo Mortal sucede cuando un proceso requiere un recurso, pero dicho recurso está ocupado por otro proceso. Lo óptimo es que un proceso libere un recurso antes que éste sea pedido por otro recurso. De lo contrario el proceso se queda esperando por tan largo tiempo que debe hacerse una intervención exterior (por parte del administrador del sistema). Ejemplo: Un proceso P1 tenga retenido un recurso R1 y sin liberarlo, requiere de otro recurso R2. Por su lado el proceso P2 tiene retenido el recurso R2 y sin liberarlo, requiere

22

Page 23: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

del recurso R1. Si ninguno de ambos procesos libera el recurso retenido, el proceso P1 bloquea al proceso P2 y viceversa. El desbloqueo ocurre por término de tiempo de asignación o por intervención directa del administrador del sistema operativo. El Bloqueo Mutuo puede detener a todo el sistema, mientras que la Muerte por Inanición afecta sólo a un proceso.

CASOS DE BLOQUEO MUTUO

1. Bloqueo Mutuo en Solicitudes de Archivo: Si dos procesos esperan un mismo archivo que ya está asignado, ocurre un bloqueo Ejemplo: Compras (P1) pide el archivo de Proveedores (R1) para colocar un pedido de madera. Ventas (P2) pide el archivo de Inventarios (R2) para reservar los componentes en la construcción. Compras no libera el archivo de Proveedores y solicita (línea punteada) el de Inventarios para comprobar la cantidad de madera existente antes de colocar el pedido. Compras se bloquea. Ventas solicita (línea punteada) el archivo de Proveedores que no ha liberado Compras. Compras se bloquea.

Ventas

Inventario

Compras

Proveedores

2. Bloqueo Mutuo en Bases de Datos: El bloqueo de bases de datos se usa para garantizar la integridad de la información. Este bloqueo sucede a nivel de la Base de Datos completa, a nivel de Tablas y a nivel de Registro. Esto es, mientras un usuario tiene acceso a una Base (Tabla o Registro), otro usuario no puede acceder a la misma Base (Tabla o Registro). Ejemplo: Un proceso P1 solicita al recurso R1 y lo bloquea. Un proceso P2 solicita al recurso R2 y lo bloquea. El proceso P1 solicita el recurso R2 que está bloqueado por P2. El proceso P2 solicita el recurso R1 que está bloqueado por P1. P1 y P2 se bloquean mutuamente. Cuando no se realiza el bloqueo para mantener la integridad de los datos, ocurre una “carrera”, en que se realiza primero, el primer proceso que llega. Esto es altamente peligroso, porque se pueden estar cambiando “pedazos” de información y no los registros completos. 3. Bloqueos Mutuos en la Asignación de Dispositivos Dedicados: Dos procesos requieren los mismos dispositivos, que se encuentran bloqueados por cada proceso.

23

Page 24: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

Ejemplo: Un proceso P1 solicita la cinta R1, la obtiene y la bloquea. Un proceso P2 solicita la cinta R2, la obtiene y la bloquea. El proceso P1 solicita la cinta R2 que está bloqueada por P2. El proceso P2 solicita la cinta R1 que está bloqueada por P1. Así ocurre que P1 y P2 se bloquean mutuamente. 4. Bloqueos en la Asignación Múltiple de Recursos: Uno o más procesos solicitan recursos que están ocupados por otros procesos que no los han liberado. Ejemplo: Un proceso P1 solicita la cinta R1, la obtiene y la bloquea. Un proceso P2 solicita la impresora R2, la obtiene y la bloquea. Un proceso P3 solicita el graficador R3, lo obtiene y lo bloquea. El proceso P1 solicita la impresora R2 que está bloqueada por P2. El proceso P2 solicita el graficador R3 que está bloqueada por P3. El proceso P3 solicita la cinta R1 que está bloqueada por P1. Así ocurre que P1, P2 y P3 se bloquean mutuamente. 5. Bloqueos Mutuos en Operaciones Periféricas Simultáneas en Línea: Cuando varios usuarios pueden imprimir en una sola impresora, los trabajos se guardan en un almacenamiento temporal hasta que la impresora pueda atenderlos. Cuando varios impresiones se lanzan a la vez, llegan las primeras páginas de cada uno de los trabajos a imprimir, pero el spool se llena sin que se haya completado uno solo (no llegan las páginas finales). De esta forma, como no se tiene ningún trabajo completo, la impresora no puede iniciar la impresión y se produce el bloqueo. 6. Bloqueos al Compartir Discos: Cuando dos procesos usan diferentes áreas de disco, se puede producir un bloqueo por comandos que están en conflicto. Ejemplo: Se requiere leer datos que están en el cilindro 20 de un disco. Mientras el brazo se está moviendo, el canal de E/S queda libre. Entra otro proceso que requiere leer del cilindro 30, si el comando no está bloqueado, la unidad de control mueve el brazo hacia el cilindro 30, el canal nuevamente queda libre y el primer proceso reconfirma su orden de moverse hacia el cilindro 20. Con el canal libre, el segundo proceso reconfirma su ida hacia el cilindro 30. El brazo está en continuo movimiento y no atiende a ninguno de los 2 procesos. 7. Bloqueos Mutuos en una Red: Los protocolos de red son los que permiten evitar el bloqueo de mensajes a través de la red. Los mensajes pueden bloquearse cuando se van almacenando en una cola de salida, pero ésta se llena, de tal modo que los mensajes ya no serán recibidos y los caminos quedan bloqueados.

CONDICIONES PARA EL BLOQUEO MUTUO.

Hay condiciones que deben ser reconocidas por el sistema operativo a fin de detectarlas para prevenir los Bloqueos Mutuos. Estas condiciones son:

1. Exclusión Mutua: Sólo un proceso tiene acceso a un recurso dedicado a la vez 2. Retención de Recursos: es contrario a la compartición de recursos 3. No Apropiatividad: Debe haber una asignación temporal de los recursos 4. Espera Circular: Por lo menos un proceso debe llegar a su fin

Si cualquiera de estas condiciones, no se da, se resuelve el Bloqueo Mutuo.

24

Page 25: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

Si es necesaria la intervención externa, se tiene necesariamente una víctima. Los factores a considerar son:

1. La prioridad del trabajo: no se tocan los trabajos con alta prioridad 2. La cantidad de CPU usada: no se tocan los trabajos a punto de terminar 3. La cantidad de tareas en que repercutiría la elección de la víctima

25

Page 26: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

ADMINISTRACIÓN DE DISPOSITIVOS. Todo lo que recibe o envía datos hacia el Sistema Operativo es un dispositivo: una terminal, un disco duro, una impresora, un manejador de CD-ROM, un MODEM, etc. En Unix los dispositivos son archivos especiales que se caracterizan por tener un nombre de archivo (para tener acceso al archivo en cuestión) y un descriptor de archivo (número entero que identifica el archivo y contiene información adicional para su manejo. Ejemplo: 1 para la Entrada Estándar, 2 para la Salida Estándar y 0 para el Error Estándar) Los dispositivos están integrados en el sistema de archivos y se hallan en el directorio /dev, cuyo dueño es el superusuario; los permisos se manejan como para cualquier otro archivo. Estos dispositivos sirven para el almacenamiento de la información (lectura y escritura) en dispositivos de acceso secuencial como papel (impresos) o cintas, y en dispositivos de acceso directo como discos magnéticos o discos ópticos. Estos dispositivos son llamados de Entrada/Salida (E/S) y se dividen en Clases o Tipos: Dispositivos por Bloques (o Sistemas de E/S Estructurados) en los cuales la información se separa en partes de tamaño fijo (512 o 1024 bytes), llamadas Bloques, tanto para su lectura como para su escritura. Es el caso de discos y cintas y es el camino más rápido para enviar o recibir grandes cantidades de información. Dispositivos por Caracteres (o Sistemas de E/S No Estructurados), los cuales utilizan la información carácter por carácter (o byte por byte). Es el caso de terminales, módems asíncronos e impresoras Unix utiliza programas escritos en C para el manejo de los dispositivos de E/S. Dichos programas se denominan Drivers, Manejadores, Archivos de Dispositivos o Controladores (device file), y consisten en un conjunto de instrucciones que explican la manera de enviar y recibir datos (por Bloque o por carácter); por lo general están residentes en memoria y sirven para comunicarse con los dispositivos físicos (hardware). Los controladores están separados por familias de dispositivos: una familia es la de impresoras, otra familia es la de cintas, etc. Cuando un nuevo dispositivo es desarrollado, puede ser usado por Unix escribiendo su manejador de dispositivo. Los cambios que se realicen en el archivo manejador del dispositivo, mantienen informado al Sistema Operativo de las nuevas características y capacidades de dichos dispositivos. Teniendo las instrucciones para comunicarse hacia los dispositivos dentro de un conjunto de archivos (/dev), los manejadores pueden ser buscados cuando son necesitados (en el caso de que raramente sean usados) o almacenados en memoria todo el tiempo cuando el Sistema Operativo es reiniciado. Cuando el programa necesita una operación de E/S, el proceso como tal se comunica con los dispositivos deseados a través de los manejadores. Es decir, estos programas supervisan la transmisión de datos entre la memoria principal (donde se hacen los procesos) y el periférico en cuestión donde se escribirá o desde donde se leerá la información.

26

Page 27: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

La E/S en Unix se realiza como un simple flujo de datos, porque no existe el concepto de registros (conjunto de datos de diferentes tipos). Las llamadas a una impresora se considera como un flujo de datos de sólo escritura, el teclado es un flujo de datos de sólo lectura y la unidad de cinta se maneja de sólo escritura o de sólo lectura. La única estructura es la dada por los propios programas, por lo tanto la creación de aplicaciones tiene un trabajo adicional. Cada dispositivo se identifica de manera única con un Número de Dispositivo Principal, un Número de Dispositivo Secundario y una Clase o Tipo. Cuando se llama a un dispositivo, se usa la Clase (o Tipo) para saber a qué conjunto de dispositivos ir: si a los por bloque, o a los por caracteres. En seguida el tiene el Número de Dispositivo Principal o Número Mayor que actúa como índice en un arreglo que contiene los puntos de entrada de los manejadores. Finalmente, cada manejador usa el Número de Dispositivo Secundario o Número Menor para elegir uno de un grupo de dispositivos físicos idénticos.

Discos Disco1 Disco2 Por Bloque Cinta1 Cintas Cinta2 Clase Cinta3 Impresora1 Impresoras Impresora2 Por Caracter Líneas Comunicación LíneaCom1

Un Buffer es un área de almacenamiento temporal dentro de la memoria principal, que se asigna a los dispositivos de bloque y se usa para minimizar el tráfico de E/S. De este modo, cuando se requiere una llamada a un dispositivo de bloque, primero se revisa en los buffers para ver si allí se encuentra la información requerida, por efecto de alguna operación anterior de E/S. Sólo si no se encuentra en la memoria principal, se hace la operación de E/S propiamente tal; es decir, la información se pasa del almacenamiento secundario a un buffer en la memoria principal. En caso que todos los buffers estén ocupados, se libera uno de ellos usando la política del Menos Usado Recientemente. En particular, Unix utiliza entre 10 y 70 buffers para entradas y salidas.

Número Mayor

Número Menor

27

Page 28: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

Para los dispositivos por caracteres, existe algo similar y se usa un sistema de colas: 1. Cola de Entrada donde se colocan los caracteres de cada línea que irá hacia el

dispositivo de salida (terminal, impresora, etc). Estos caracteres forman líneas que terminan con “fin de línea” o <enter>

2. Cola de Salida, donde se almacenan los caracteres que se requieren para la operación de E/S. Cada vez que sucede una interrupción de terminación de hardware, el controlador obtiene el siguiente carácter de la Cola de Entrada para enviarlo al hardware correspondiente. Esta operación se realiza por cada uno de los caracteres que están en espera; es decir, hasta que la cola queda vacía.

Por lo tanto, los dispositivos modo carácter hacen su propio buffer, mientras que los dispositivos modo bloque, usualmente se comunican en bloques de 512 o 1024 bytes y es el kernel o núcleo el que se ocupa del buffer. Una manera fácil de saber el modo que utiliza un periférico es obtener un listado largo del archivo de dispositivo, usando el comando 'ls -l'. Si el primer carácter es una b, indica que el periférico opera en modo bloque. Si el primer carácter es una c indica que el periférico opera en modo carácter. Cuando se hace referencia a cómo se asignan los dispositivos a los usuarios, se tiene otra clasificación distinta de la anterior:

1. Los Dispositivos Dedicados son aquellos que se asignen sólo a un trabajo a la vez y que le sirven todo el tiempo que lo requiera. Ejemplos son la impresora y las unidades de cinta.

2. Los Dispositivos Compartidos son los que se asignan a varios procesos, cuyas solicitudes de recursos están organizadas por el administrador para evitar bloqueos. Ejemplos son los discos.

3. Los Dispositivos Virtuales son una combinación de los dos primeros; es decir son dispositivos dedicados transformados en compartidos. Por ejemplo las impresoras que usan Spool.

Con toda esta actividad, se requiere una gestión y control de los dispositivos. Por ello el programa administrador de dispositivos (software perteneciente al Sistema Operativo), necesita saber:

1. Qué componentes están ocupados y cuáles están libres. Por ejemplo en una solicitud de impresión se requiere saber 3 cosas:

a. si el canal de la memoria a la impresora está o no libre para mandar información a través de él

b. si el controlador de la impresora está o no listo para recibir los datos a imprimir

c. si la impresora está lista para imprimir.

2. Aceptar las solicitudes de E/S de los distintos procesos que se están ejecutando 3. Aceptar la diferencia de velocidades entre el CPU y los dispositivos de E/S.

28

Page 29: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

Antes de leer o escribir en un archivo, éste debe ser abierto. Cada archivo se abre con un Modo: Lectura, Escritura o Agregar.

1. Lectura: a. Si el archivo no existe, el sistema lo crea. b. Si el archivo existe, se puede leer

2. Escritura: a. Si el archivo no existe, el sistema lo crea. b. Si el archivo existe, se sobre escribe su contenido

3. Agregar: a. Si el archivo no existe, el sistema lo crea. b. Si el archivo existe, su contenido inicial se mantiene y se puede agregar más

información.

La E/S en un sistema UNIX se maneja con 5 llamadas al sistema: Open, Close, Read, Write y Lseek. Cada archivo tiene un Indicador que sirve para señalar las operaciones posibles con dicho archivo. Estos Indicadores son:

1. Sólo lectura: desde el inicio, desde después de donde se quedó, desde la posición indicada (seek). Todas las lecturas son secuenciales.

2. Sólo escritura: desde el inicio, desde después de donde se quedó, desde la posición indicada (seek). Todas las escrituras son secuenciales.

3. Actualización que implica operaciones de lectura y escritura 4. Creación porque se trata de un archivo nuevo 5. Agregar en que se agrega más información, conservando la anterior 6. Truncamiento en que reduce a 0 la longitud del archivo, por lo que la

información será sobre escrita 7. Exclusivo en que el sistema indicará un error si el archivo que se quiere tener

como exclusivo, ya existe La interfaz de E/S es síncrona con respecto al originador de la llamada, por lo que el proceso que llama se queda bloqueado hasta que se atiende su solicitud. Como esto es lento, Berkeley creó la E/S Sin Bloqueo, de modo que si se intenta leer y no hay datos disponibles, se produce un error.

29

Page 30: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

ADMINISTRACIÓN DE MEMORIA. El desempeño de todo sistema de cómputo, depende de cuánta memoria tenga disponible y de qué manera se use dicha memoria durante los procesos. Esta memoria se denomina Memoria Principal o Memoria Primaria o Memoria Real y se refiere al lugar donde deben estar los datos y programas para poder ser procesados o hacer referencia a ellos. Por ello también se le llama Almacenamiento Principal, Almacenamiento Primario o Almacenamiento Real. Por otro lado se llama Almacenamiento Secundario a los dispositivos que sirven para almacenar la información que está guardada (en respaldo) o en espera de ser procesada; algunos dispositivos son: discos y cintas. El Almacenamiento Secundario es de mayor capacidad, menor velocidad de acceso y de menor costo que el almacenamiento primario. Preguntas:

a. ¿Qué capacidad tiene la RAM (memoria o almacenamiento principal) de su computadora?

b. ¿Cuál es su costo? c. ¿Qué capacidad tiene el Disco Duro (memoria o almacenamiento secundario) de su

computadora? d. ¿Cuál es su costo?

ORGANIZACIÓN DEL ALMACENAMIENTO

Es el modo de considerar el almacenamiento principal para que su uso sea óptimo. Ante esto surgen aspectos como:

a. El almacenamiento principal, ¿puede ser utilizado por uno o por varios usuarios? b. Si hay varios programas en la memoria principal, ¿a cada uno de ellos se le asignan

espacios iguales o diferentes? Estos espacios o fragmentos, se llaman particiones c. Las particiones, ¿son rígidas (permanecen con el mismo tamaño durante mucho

tiempo) o dinámicas (sus tamaños pueden cambiar pasado un tiempo)? d. Los diferentes trabajos en la memoria principal, ¿deben ejecutarse siempre en una

partición específica o pueden cambiar su lugar de proceso? e. Cada trabajo que va a ser procesado, ¿debe estar en posiciones contiguas de la

memoria o puede estar distribuido en diversas localidades?

ADMINISTRACIÓN DEL ALMACENAMIENTO

Es el modo de considerar el almacenamiento principal para que su rendimiento sea óptimo. Las estrategias para administrar el almacenamiento, considera aspectos como los siguientes:

a. Cuándo se saca un programa de la memoria secundaria para pasarlo a la memoria principal

b. Cuándo se saca un programa de la memoria principal para pasarlo a la memoria secundaria

30

Page 31: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

c. El sistema operativo espera a que le hagan una petición o se “adelanta” al usuario d. En qué parte de la memoria principal se coloca el programa extraído de la memoria

secundaria e. En qué parte de la memoria secundaria se coloca el programa extraído de la

memoria principal f. Cuál programa de la memoria principal puede ser sacado para que deje el espacio a

otro programa que se va a ejecutar Durante la historia se han desarrollado diferentes esquemas de asignación de memoria: 1. Esquema de Asignación Completa

para un Usuario: Los primeros sistemas de cómputo (finales de los años 40 y principios de los 50), pueden ser usados sólo por un usuario a la vez, por lo que todos los recursos de la máquina son puestos a su disposición (y cobrados). Si el usuario tenía varias tareas a procesar, éstas se ejecutaban una tras otra (secuencialmente) y cada una utilizaba toda la memoria, en espacios contiguos.

Sistema Operativo

Área de trabajo para un usuario

Área no utilizada

Sistema Operativo

Área de código y datos

Área de superposición

2. Fase de

3. Fase de Salida

1. Fase de En una primera instancia, si alguna tarea necesitaba más memoria que la existente, no podía ser ejecutado. Posteriormente, se permitían super posiciones en el área de trabajo, de modo que parte del código y de los datos se mantenía en un área fija, y otra parte se reusaba en las distintas fases del proceso, intercambiando con el almacenamiento secundario. Estas superposiciones eran hechas por el propio programador y controladas en forma manual.

Un hecho a resaltar en este esquema, es que se deben tomar las precauciones necesarias, para evitar que el programa del usuario, sobrepase los límites donde se encuentra el sistema operativo. Esta protección consiste en mantener un registro de límites (dónde empieza y dónde termina el espacio ocupado por el sistema operativo) y en estar verificando que cada llamada hecha por el programa del usuario, no sobrepase dichos límites.

En este esquema el CPU se mantiene ocioso no sólo en la fase de la preparación de

todos los recursos a usar (disco, cintas), que se hacía manualmente, sino también cada vez que el programa hace una llamada a E/S. Al automatizar la fase de transición de un trabajo al que sigue (término de un trabajo e inicio de la preparación de otro), se

31

Page 32: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

desarrolló el Proceso por Lotes, en que se colocan los trabajos uno tras otro, usando un lenguaje de control de trabajos, de manera que se “adelanta” la preparación del siguiente trabajo. Esto mejoró el aprovechamiento de los sistemas de cómputo y los sistemas operativos se hicieron más poderosos porque ya incluían el trabajo de administración de los recursos. Esto sucedía a principios de los años 60.

2. Esquema de Multiprogramación con Particiones Fijas: Cuando en un trabajo de un

usuario se realizan muchos cálculos, la CPU se mantiene ocupada, pero cuando un programa hace muchas llamadas a E/S (uso de dispositivos), la CPU se mantiene ociosa mientras se realiza la E/S debido a que los dispositivos tienen una velocidad mucho menor que el CPU.

Sistema Operativo

Partición 1

En uso

Partición 2 vacía

Partición 3 En uso

Cola de trabajos

a ejecutarse en la

No hay trabajos

a ejecutarse en la

Cola de trabajos

a ejecutarse en la

Surge entonces, el concepto de partición de la memoria, a fin de introducir la Multiprogramación. La memoria se divide en porciones de un tamaño determinado, llamadas Particiones, donde residen los trabajos que van a ser procesados. Cada tarea debe realizarse en una partición fijada de antemano, por lo que se debe controlar no sólo que no se traspasen los límites donde se encuentra el sistema operativo, sino además que cada tarea no invada los límites de otras tareas. Para este control se utiliza un registro de límites. Esto se denominó Esquema de Multiprogramación con Particiones Fijas y Específicas.

El concepto de fijo se refiere tanto a que el tamaño de la partición es fijo (el tamaño no cambia), como a que el trabajo se realiza en una partición fija (partición predeterminada).

Posteriormente y ante la desventaja de tener que esperar tiempo de ejecución en una

partición dada, aunque hubiera otras particiones desocupadas, se estableció que un trabajo podía “reubicarse” en alguna partición vacía (sin trabajos en cola de espera), lo que lleva a desarrollar sistemas operativos que debían controlar todos estos cambios. Esto se denominó Esquema de Multiprogramación con Particiones Fijas con Reubicación.

Una desventaja de este esquema de particiones fijas, es que si la partición es muy “grande” para determinadas tareas, se produce un desperdicio de la memoria, también llamada Fragmentación Interna (propia de la partición asignada). Otro problema es si la partición es muy “pequeña” para realizar un trabajo dado, debido a que dicha partición queda sin utilizarse, porque si se requiere variar el tamaño de la partición,

32

Page 33: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

deberá reiniciarse el equipo. De cualquier modo, la administración se hace más difícil, pero tanto la CPU como los dispositivos, son mucho mejor utilizados.

3. Esquema de Multiprogramación con Particiones Dinámicas: Surge como un

paliativo ante los problemas antes mencionado, por lo que a cada trabajo se le asigna el tamaño de memoria que sea necesario (pero no todo), de manera que las particiones se hacen dinámicas o variables (varían de tamaño), evitando el desperdicio de memoria. En un principio, las localidades de la memoria que constituían una partición, debían estar contiguas (una después de otra). Estos esquemas funcionaban bajo la política de Cola (el primero en llegar, es el primero en ser atendido).

Claro que los trabajos que requerían más memoria debían esperarse a que hubiera espacio contiguo, para que se le asignara. Cuando los trabajos menores concluían, se liberaban las particiones que estaban usando, quedando huecos que un trabajo grande no podía utilizar. Se producía así una Fragmentación Externa, debido a que no se podían utilizar espacios no contiguos. Por lo tanto hacía falta un mecanismo para “juntar” los espacios pequeños que estuvieran libres (formando los huecos), a fin de poder usar una partición mayor. A fin de aprovechar los espacios libres, se realizan dos movimientos:

Cola de Trabajos

Sistema

Operativo

T1 = 10K

Espacio

Sistema Operativo

T1 = 10K

T2 = 35K T3 = 5 K

Sistema Operativo

T1 = 10K

T2 = 35K Espacio

T1 = Trabajo que requiere 10K T2 = Trabajo que requiere 35K T3 = Trabajo que requiere 5 K

a. Condensación del Almacenamiento: que es la unión de dos o más espacios libres, en uno solo, de manera que pueda aprovecharse un solo espacio más grande.

b. Compactación del Almacenamiento: que consiste en trasladar todos los espacios libres al final del almacenamiento, para entonces unir todos los espacios contiguos. Este proceso incluye la reescritura de los programas almacenados y la interrupción de las actividades del sistema, hasta que se haya terminado la compactación. Este proceso también se llama Defragmentación. La compactación debe realizarse cuando el almacenaje llega a un porcentaje predeterminado (por ejemplo, 70%) de su capacidad, o cuando hay muchas tareas en espera o se ha cumplido un plazo preestablecido (por ejemplo, un mes).

En ambos casos se utiliza una Lista de espacios Libres donde se han ido guardando las direcciones de los bloques que se han ido liberando.

33

Page 34: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

Condensación de los espacios libres: Compactación de los espacios libres: Las Estrategias para Colocar los Trabajos en el Almacenamiento: son los métodos que se utilizan para decidir dónde se van colocando los trabajos, en la medida que van llegando. Hay tres estrategias principales:

Sistema Operativo

T1 = 10K

Libre 15K Libre 10K T2 = 20K

Sistema Operativo

T1 = 10K

Libre 25K T2 = 20K

Sistema Operativo

T1 = 10K

Libre

T2 = 20K

Libre

Sistema Operativo

T1 = 10K

T2 = 20K

T3 = 30K

Libre

a. Mejor Ajuste: el trabajo se coloca en el primer hueco que se ajuste a su tamaño, de forma que quede poco espacio desperdiciado. Esto implica una búsqueda a través de toda el área libre, para lograr dicho espacio.

b. Primer Ajuste: el trabajo se coloca en el primer hueco que se ajuste a su tamaño, sin importar el espacio desperdiciado. Esto implica un menor tiempo de búsqueda, comparado con el anterior, pero más espacio desperdiciado.

c. Peor Ajuste: el trabajo se coloca en el primer hueco más grande posible que sea mayor a su tamaño, de forma que quede mucho espacio desperdiciado. Esto implica una búsqueda a través de toda el área libre, para lograr dicho espacio. Pero el hueco que se deje podrá ser utilizado por otro trabajo grande.

34

Page 35: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

4. Esquema de Multiprogramación con Intercambio de Almacenamiento: todo el almacenamiento primario se ocupa en un solo trabajo, cuando éste no puede continuar (por tiempo o por E/S), dicho trabajo se pasa a la memoria secundaria y desde ella se extrae otro trabajo que también ocupa la memoria principal completa hasta que no pueda continuar. Esto significa que un trabajo está pasando de la memoria principal a la secundaria y viceversa, varias veces antes de ser completado. Este esquema que es muy útil cuando se tiene un almacenamiento principal restringido y se atiende a pocos usuarios, se utilizó en los primeros sistemas operativos, pero fue la base para la paginación actual. Almacenamiento Virtual: desde los años 60 se utiliza este concepto para hacer referencia al hecho de ocupar espacios muchos mayores que los que se tienen realmente en el almacenamiento primario, pero su empleo es reciente; es más, los procesadores actuales manejan el almacenaje virtual. Direcciones Virtuales: son direcciones referidas en un proceso de ejecución. Las direcciones virtuales se encuentran en el Espacio de Direcciones Virtuales Direcciones Reales: son direcciones existentes en el almacenaje primario. Las direcciones reales se encuentran en el Espacio de Direcciones Reales Almacenamiento de Varios Niveles: El almacenamiento real es el primer nivel, mientras que el segundo nivel está formado por medios de almacenamiento de gran capacidad (discos, cintas) donde se almacenan los programas y datos que no caben en el almacenamiento primario. Este segundo nivel también es llamado Almacenamiento Auxiliar, Secundario o de Respaldo. Como la mayoría de las veces existen varios programas o tareas en el almacenaje primario, sólo se mantienen allí pequeñas porciones de dichos trabajos, quedando el resto en el almacenaje secundario. Para acceder a las direcciones donde realmente se encuentra la información, se necesitan programas especiales que “traduzcan” las direcciones virtuales en direcciones reales. Estos programas se llaman Mecanismos de Traducción Dinámica de Direcciones y son ajenos al programador. De la misma manera, el hecho de que las direcciones virtuales se refieran o no a espacios contiguos en el almacenamiento real, tampoco es tarea del programador. Todo este trabajo es hecho incluso a nivel de hardware. En la práctica, la información se guarda en Bloques, ya que tener una relación 1 a 1 entre direcciones reales y virtuales, sería muy costoso. Para optimizar el proceso, se lleva un registro para localizar los bloques que se están usando. Cuando los bloques son de diferentes tamaños, se llaman Segmentos y la organización del almacenaje virtual se llama Segmentación. Cuando los bloques son de un mismo tamaño, se llaman Páginas y la organización del almacenaje virtual se llama Paginación.

35

Page 36: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

Algunos sistemas combinan segmentos (de tamaño variable) formados por páginas (de tamaño fijo) En resumen, el disco se divide en partes iguales llamadas sectores; la memoria principal se divide en partes iguales llamadas Marcos de Página y los trabajos se particionan en partes iguales llamadas Páginas. Lo óptimo es dividir cada trabajo y la memoria principal en partes del mismo tamaño que los sectores del disco. De esta manera las Páginas (de los trabajos) que se llevan desde el disco (sectores) a la memoria, “caben” en los Marcos de Página (de la memoria principal). Es decir, un sector contiene una página de instrucciones y datos de tareas o trabajos, y cabe en un marco de página de la memoria. Por ejemplo si los sectores de disco miden 512 bytes cada uno, lo mismo miden las páginas de tareas (sectores o partes iguales en que se dividió la tarea por parte del administrador de memoria) y los marcos de página de la memoria (sectores o partes iguales en que se dividió la memoria). En los nuevos sistemas operativos no es necesario que las páginas de un trabajo sean adyacentes; cada página se puede almacenar en cualquier marco de página de la memoria. Esto implica un mejor aprovechamiento de la memoria y también un mayor control. El sistema operativo utiliza 3 tablas para controlar los trabajos activos que están en memoria: 1. Tabla de Tareas con dos entradas:

1.1. Tamaño de la tarea 1.2. Localidad en memoria donde está la tabla del mapa de páginas

2. Tabla de Mapas de Páginas: con dos entradas para cada página: 2.1. El número de la página (secuenciales) 2.2. Dirección en memoria del marco de página que corresponde

3. Tabla de Mapa de Memoria con dos entradas: 3.1. Localidad inicial de cada marco de página 3.2. Estado (libre u ocupado) de cada localidad

Otro concepto importante es el de desplazamiento, que se refiere a la distancia que se encuentra cada línea, desde el inicio de la página.

36

Page 37: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

Ejemplo de Desplazamiento Sea una tarea que se ha dividido en porciones de 100 líneas (sólo para fines de mejor explicación), por cada página Tarea Memoria Principal (con 250 líneas)

1 2 3 100 101 102 103 200 201 202 250 300

0 1 2 99

0 1 2 99

100 101 102 199

0 1 2 99

Marco de Página 1 Desplaz.

200 249 299

0 49

Marco de Página 2 Desplaz.

Marco de Página 0 Desplaz.

37

Page 38: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

EJEMPLO de una tarea llamada Tarea Uno que mide 1300 bytes.

512 bytes +

512 bytes +

276 bytes

Tarea Uno que

mide 1300 bytes

El administrador de memoria divide la tarea en Páginas para que pueda ser ejecutada en la RAM

MP 0 MP 1 MP 2 MP 3 MP 4 MP 5 MP 6 MP 7

El Sistema Operativo memoria divide la memoria principal en Marcos de Páginas (MP) para que la tarea pueda ser almacenada para su proceso

Los Marcos de Página son del mismo tamaño que las Páginas (512 bytes)

0

512

1024

1536

2048

2560

3072

3584

MP 0 MP 1 MP 2 MP 3 MP 4 MP 5 MP 6 MP 7

Pág. 0 = 512 bytes Pág. 1 = 512 bytes

Pág. 2 = 276 bytes

Cada Página “cabe” en cada Marco de Página

La Tarea Uno se almacena en la memoria principal, empezando en la dirección 2048

0

512

1024

1536

2048

2560

3072

3584

En el último Marco de Página ocupado por la Tarea Uno, hay Fragmentación Interna de 236 bytes

38

Page 39: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

Las tareas se controlan utilizando 3 tablas. TABLA DE MAPA DE MEMORIA TABLA DE MAPA DE PÁGINAS A partir de la dirección inicial donde se ubicó la tarea, se sabe qué Página quedó dentro de cuál Marco de Página

Dirección Inicial Página Mapa de Página 2048 0 4

1 2 2 6

TABLA DE TAREAS

Nombre de Tareas Tamaño de Tareas (en bytes)

Dirección Inicial en RAM

Uno 1300 2048 NOTA: Esta tabla está ejemplificada sólo para la Tarea Uno, pero pueden haber

más tareas existentes.

MP 0 MP 1 MP 2 MP 3 MP 4 MP 5 MP 6 MP 7

0

512

1024

1536

2048

2560

3072

3584

Marco de Página Direcciones de Estado Inicio

Ocupado S.O.

Libre

Ocupado

Libre

Ocupado

Libre

Ocupado

Libre

39

Page 40: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

PAGINACIÓN POR DEMANDA.

Cuando una tarea va a ser ejecutada, ésta debe encontrarse en la memoria principal, pero antes de ser ejecutada, se encuentra en la memoria secundaria. Como los sistemas actuales son multitarea o multiusuarios, las tareas completas no pueden estar en la memoria principal, sino que las páginas se van pasando a la memoria principal, conforme se van requiriendo; esto es debido a que para la ejecución, no se necesitan todas las páginas al mismo tiempo. Este hecho fue el que posibilitó la Memoria Virtual. Se puede definir la Memoria Virtual como la capacidad de mover las páginas que se necesiten, entre la memoria principal y la memoria secundaria. El detalle está en tener un dispositivo de acceso directo de alta velocidad que trabaje directamente con la PCU, para que las páginas pasen rápidamente entre la memoria secundaria a la principal y viceversa. El Sistema Operativo tiene políticas determinadas acerca de:

a. Cómo se transfieren las páginas b. Con qué frecuencia se hace la transferencia c. Cuándo se deja espacio para las nuevas páginas d. De qué modo se deja dicho espacio.

Las tablas que se usan para controlar este intercambio, son las mismas que en el caso de Asignación de Memoria Paginada que se tenía antes, pero con 3 nuevas entradas para la Tabla de Mapas de Páginas. Es decir:

1. Tabla de Tareas con dos entradas: 1.1. Tamaño de la tarea 1.2. Localidad en memoria donde está la tabla del mapa de páginas

2. Tabla de Mapas de Páginas: con dos entradas para cada página: 2.1. El número de la página (secuenciales) 2.2. Dirección en memoria del marco de página que corresponde 2.3. Estatus acerca si la página solicitada está o no en memoria (Si la página

solicitada está en memoria, no es necesario ir a buscarla a disco). 2.4. Estatus acerca de si el contenido de la página se ha modificado o no (Si el

contenido de la página no se ha modificado, no es necesario escribirla en disco, porque la copia ya está allí)

2.5. Estatus para saber si la página se ha solicitado recientemente o no (Si la página es muy “activa”, se puede quedar en memoria principal)

3. Tabla de Mapa de Memoria con dos entradas: 3.1. Localidad inicial de cada marco de página 3.2. Estado (libre u ocupado) de cada localidad

Cuando se requieren Marcos de Página para colocar en ellas Páginas, y no hay disponibles, se deben enviar a memoria secundaria algunas páginas de la memoria principal, para hacer espacio. Este paso produce que las 3 tablas puedan ser actualizadas. El continuo intercambio de páginas, hace que el sistema se vuelva ineficaz y se le da el nombre de

40

Page 41: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

Hiperpaginación (actividad excesiva de paginación). Este fenómeno ocurre cuando una parte de una instrucción de ciclo por ejemplo, queda en una página y la otra parte de la instrucción, queda en la página siguiente (Algunos ciclos son While, Do, For). El hecho de requerir una página que no se encuentra en la memoria principal, se llama Falla de Página. Dos Políticas importantes de Reemplazo o Eliminación de una Página, son:

a. FIFO (First In First Out): La primera página que entra es la primera página que sale. b. LRU (Least Recently Used ): La página que se ha utilizado menos, recientemente,

es la que sale. Para esto es preciso considerar un marcador de tiempo por cada página que se tiene en la memoria principal. Además, las páginas que no se han modificado son mejores candidatas a ser cambiadas, al igual que las páginas que no hayan sido referidas en el último tiempo. Las candidatas más “malas” son las páginas que se cambiaron porque hay que rescribirlas en la memoria secundaria.

41

Page 42: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

EDITOR VI Un texto está compuesto por caracteres (letras, números, símbolos, etc), palabras (conjunto de caracteres separados entre sí por espacios o símbolos especiales de puntuación, y por líneas (separadas por el carácter de Return). Es necesario no confundir con otros editores donde la línea ocupa alrededor de 62 caracteres horizontales de pantalla, cada párrafo está separado por el carácter de Return y un párrafo puede tener varias líneas. Por esta razón es que en la pantalla parece que se hubiera escrito mucho y en realidad son pocas líneas. El número de líneas y de caracteres se muestran en el momento en que se salva y se sale del editor. Dentro del texto, el cursor está posicionado en un carácter (antes o después), al inicio, al medio o al final de una palabra o de una línea. Es preciso considerar que la figura de rectángulo lleno del cursor, hace que el cursor esté “sobre” el carácter, lo cual obviamente es una ilusión. Se llama palabra actual a aquella donde se encuentra el cursor. Se llama línea actual a aquella donde se encuentra el cursor. Editar significa que en un texto se pueden hacer operaciones como borrar, modificar o agregar, ya sea caracteres, palabras o líneas. Estas operaciones pueden realizarse a partir de la posición del cursor, en el sentido de hacia delante (de izquierda a derecha) o hacia atrás (de derecha a izquierda). En el texto, también se pueden realizar movimientos del cursor, hacia delante (hasta el final de la línea escrita), hacia atrás (hasta el inicio de la línea escrita), hacia arriba (hasta llegar al inicio de la primera línea del texto) o hacia abajo (hasta llegar al último carácter de la línea final del texto). Los movimientos del cursor se realizan mediante las teclas siguientes: h Cursor hacia la izquierda ←

j Cursor hacia abajo ↓ k Cursor hacia arriba ↑ l Cursor hacia la derecha →

Nótese la posición consecutiva de dichas letras en el teclado. Sin embargo y si están habilitadas, las teclas llamadas de cursor (teclado de flechas), permiten hacer los mismos movimientos. El Editor VI funciona en uno de dos modos: Modo de Mandato y Modo de Edición. El Modo de Mandato, como su nombre lo indica, es el modo en que se dan órdenes tales como: Deshacer una acción, reemplazar, ir a una posición determinada, borrar, mover, etc. El Modo de Edición se refiere realmente a la inserción de texto; presionando la tecla de ESC, se sale del modo de inserción.

42

Page 43: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

INICIAR: Cuando se inicia una sesión con VI, se empieza en modo de orden o mandato.

vi archi Si el archivo llamado “archi” no existe, lo crea; si ya existe lo abre y el cursor se ubica al inicio de la primera línea

vi +10 archi Abre el archivo llamado archi, ubicando el cursor en el inicio de la décima línea

vi + archi Abre el archivo llamado archi, ubicando el cursor en el inicio de la última línea

SALIR:

:wq Grabar y salir. Se indica el número total de líneas y caracteres. :q! Salir sin guardar los cambios

NUMERAR: :set nu Enumera todas las líneas del archivo :nu Muestra el número de la línea actual GRABAR: :w Grabar :w >> archi Agrega el texto al archivo llamado archi IR A: $ al final de la línea ^ al principio de la línea H al principio del texto de la ventana

M a la mitad del texto de la ventana L al final del texto de la ventana 5G ir a la quinta línea

INSERTAR: a inserta después del cursor A inserta al final de la línea i inserta antes del cursor I inserta al principio de la línea SOBRE ESCRIBIR:

R Sobre escribe el texto que se teclee, perdiendo el anterior. Se sale con la tecla de ESC.

BUSCAR: fa Busca el primer carácter “a” hacia delante del cursor Fe Busca el primer carácter “e” hacia atrás del cursor Si se presiona la tecla de coma (,) busca en la dirección contraria, mientras que con la tecla de punto y coma (;) busca en la misma dirección.

43

Page 44: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

BORRAR: dd Borra la línea actual

D Borra desde la posición actual hasta el final de la línea x Borra el carácter después del cursor (delete) 2x Borra 2 caracteres hacia delante de la posición actual

X Borra el carácter antes del cursor (backspace) 3X Borra 3 caracteres hacia atrás de la posición actual dw Borra la palabra actual. 3dw Borra 3 veces una palabra d3w Borra 3 palabras 2d3w Borra 2 veces 3 palabras (o sea que borra 6 palabras)

dG Borra desde la posición actual hasta el final del archivo. J Borra el Enter juntando la línea actual con la de abajo SUSTITUIR: (Reemplazar)

:s/hola/buen día Sustituye la primera palabra “hola” que se encuentra en la línea actual, por la palabra “buen día”

:1,2s/a/A En las líneas 1 y 2 sustituye todas las “a” por “A” :1,$s/es/ES/g Desde la primera línea y hasta el final del archivo, sustituye

todas las cadenas “es” por “ES” aunque estén formando parte de otra palabra. El parámetro “g” indica globalmente.

IMPRIMIR lp archi Manda a impresión el archivo llamado archi lpr archi Manda el archivo llamado archi a la cola de impresión.

lpq Muestra el estado de la cola de impresión, indicando en la segunda columna, el número de trabajo de cada archivo enviado a impresión.

lprm 545 Saca de la cola de impresión el trabajo cuyo número es el 545. El sistema avisa que ha sido cancelada la impresión

ENVIAR O LEER CORREOS

mail usuario(s) Permite enviar e-mail a uno o varios usuarios. mail Permite ver en pantalla los distintos mensajes que hay en el

buzón, junto con su remitente. Para revisar un mail, sólo se debe pulsar el número que aparece después de N.

<Enter> Para pasar de un mensaje a otro d Elimina el mail. p Imprime el mensaje s archi Guarda el mensaje en un archivo llamado archi. q Sale del mail, eliminándolo del buzón y guardándolo en un

archivo llamado mbox creado por el sistema. x Sale del mail, sin eliminarlo del buzón. r Responde a quien envía y todas las direcciones que aparezcan en

el mail R Responde sólo a quien envió el mail. mail usuario < archi

Envía un archivo llamado archi, por mail al usuario indicado

44

Page 45: SISTEMAS OPERATIVOS: UNIX Dra. Cecilia Poblete Ibaceta …labsag.tlalpan.uvmnet.edu/profesores/tecnociencias/Materiales... · Es el software que controla los recursos como son la

Sistemas Operativos Cecilia Poblete Ibaceta

ENVIAR MENSAJES

write prof01 Permite enviar un mensaje al usuario llamado prof01, siempre que dicho usuario esté activo en el sistema. Para terminar se deberá teclear ^d

RECIBIR MENSAJES

mesg y Sí puede recibir mensajes. mesg n No puede recibir mensajes. mesg Indica si el estado de la recepción de mensajes (Y o N)

45