Está en la página 1de 17

Sistema Operativo UNIX

Pgina 1

www.monografias.com

SISTEMA OPERATIVO UNIX


Caractersticas Generales:
Es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos de perifricos conectados a la mquina. Posee las siguientes caractersticas: - Es un sistrema operativo multiusuario, con capacidad de simular multiprocesamiento y procesamiento no interactivo. - Est escrito en un lenguaje de alto nivel : C. - ispone de un lenguaje de control programa!le llamado "#E$$. - %frece facilidades para la creaci&n de programas y sistemas y el am!iente adecuado para las tareas de dise'os de soft(are. - Emplea manejo dinmico de memoria por intercam!io o paginaci&n. - )iene capacidad de intercone*i&n de procesos. - Permite comunicaci&n entre procesos. - Emplea un sistema jerrquico de arc+ivos, con facilidades de protecci&n de arc+ivos, cuentas y procesos. - )iene facilidad para redireccionamiento de Entradas,"alidas. - -aranti.a un alto grado de porta!ilidad. El sistema se !asa en un /0cleo llamado 1ernel, que reside permanentemente en la memoria, y que atiende a todas las llamadas del sistema, administra el acceso a los arc+ivos y el inicio o la suspenci&n de las tareas de los usuarios. $a comunaci&n con el sistema 2/34 se da mediante un programa de control llamado "#E$$. Este es un lenguaje de control, un intrprete, y un lenguaje de programaci&n, cuyas caractersticas lo +acen sumamente fle*i!le para las tareas de un centro de c&mputo. Como lenguaje de programaci&n a!arca los siguientes aspectos: - %frece las estructuras de control normales: secuenciaci&n, iteraci&n condicional, selecci&n y otras. - Paso de parmetros. - "ustituci&n te*tual de varia!les y Cadenas. - Comunicaci&n !idireccional entre &rdenes de s+ell. El s+ell permite modificar en forma dinmica las caractersticas con que se ejecutan los programas en 2/34: $as entradas y salidas pueden ser redireccionadas o redirigidas +acia arc+ivos, procesos y dispositivos5 Es posi!le interconectar procesos entre s.

Sistema Operativo UNIX

Pgina 2

iferentes usuarios pueden 6ver6 versiones distintas del sistema operativo de!ido a la capacidad del s+ell para configurar diversos am!ientes de ejecuci&n. Por ejemplo, se puede +acer que un usuario entre directamente a su secci&n, ejecute un programa en particular y salga automticamente del sistema al terminar de usarlo.

Sistema Operativo UNIX

Pgina 3

El ncleo del Sistema Operativo


El n0cleo del sistema operativo 2ni* 7llamado 1ernel8 es un programa escrito casi en su totalidad en lenguaje C, con e*cepci&n de una parte del manejo de interrupciones, e*presada en el lenguaje ensam!lador del procesador en el que opera. $as funciones del n0cleo son permitir la e*istencia de un am!iente en el que sea posi!le atender a varios usuarios y m0ltiples tareas en forma concurrente, repartiendo al procesador entre todos ellos, e intentando mantener en grado &ptimo la atenci&n individual. El 1ernel opera como asignador de recursos para cualquier proceso que necesite +acer uso de las facilidades de c&mputo. Es el componente central de 2ni* y tiene las siguientes funciones: - Creaci&n de procesos, asignaci&n de tiempos de atenci&n y sincroni.aci&n. - 9signaci&n de la atenci&n del procesador a los procesos que lo requieren. - 9dministraci&n de espacio en el sistema de arc+ivos, que incluye: acceso, protecci&n y administraci&n de usuarios5 comunicaci&n entre usuarios v entre procesos, y manipulaci&n de E," y administraci&n de perifricos. - "upervisi&n de la transmisi&n de datos entre la memoria principal y los dispositivos perifricos. El 1ernel reside siempre en la memoria central y tiene el control so!re la computadora, por lo que ning0n otro proceso puede interrumpirlo5 s&lo pueden llamarlo para que proporcione alg0n servicio de los ya mencionados. 2n proceso llama al 1ernel mediante m&dulos especiales conocidos como llamadas al sistema.

Sistema Operativo UNIX

Pgina 4

El 1ernel consta de dos artes principales: la secci&n de control de procesos y la de control de dispositivos. $a primera asigna recursos, programas, procesos y atiende sus requerimientos de servicio5 la segunda, supervisa la transferencia de datos entre la memoria principal y los dispositivos perifricos. En trminos generales, cada ve. que alg0n usuario oprime una tecla de una terminal, o que se de!e leer o escri!ir informaci&n del disco magntico, se interrumpe al procesador central y el n0cleo se encarga de efectuar la operaci&n de transferencia.

Cuando se inicia la operaci&n de la computadora, de!e cargarse en la memoria una copia del n0cleo, que reside en e: disco magntico 7operaci&n denominada !ootstrap8. Para ello, se de!en iniciali.ar algunas interfaces !sicas de +ard(are5 entre ellas, el reloj que proporciona interrupciones peri&dicas. El 1ernel tam!in prepara algunas estructuras de datos que a!arcan una secci&n de almacenamiento temporal para transferencia de informaci&n entre terminales y

Sistema Operativo UNIX

Pgina 5

procesos, una secci&n para almacenamiento de descriptores de arc+ivos y una varia!le que indica la cantidad de memoria principal. 9 continuaci&n, el 1ernel iniciali.a un proceso especial, llamado proceso ;. En general, los procesos se crean mediante una llamada a una rutina del sistema 7for<8, que funciona por un mecanismo de duplicaci&n de procesos. "in em!argo, esto no es suficiente para crear el primero de ellos, por lo que el 1ernel asigna una estructura de datos y esta!lece apuntadores a una secci&n especial de la memoria, llamada ta!la de procesos, que contendr los descriptores de cada uno de los procesos e*istentes en el sistema. espus de +a!er creado el proceso ;, se +ace una copia del mismo, con lo que se crea el proceso =5 ste muy pronto se encargar de 6dar vida6 al sistema completo, mediante la activaci&n de otros procesos que tam!in forman parte del n0cleo. Es decir, se inicia una cadena de activaciones de procesos, entre los cuales destaca el conocido como despac+ador, o sc+eduler, que es el responsa!le de decidir cul proceso se ejecutar y cules van a entrar o salir de la memoria central. 9 partir de ese momento se conoce el n0mero = como proceso de iniciali.aci&n del sistema, init. El proceso init es el responsa!le de esta!lecer la estructura de procesos en 2ni*. /ormalmente, es capa. de crear al menos dos estructuras distintas de procesos: el modo monousuario y el multiusuario. Comien.a activando el intrprete del lenguaje de control 7"+ell8 en la terminal principal, o consola, del sistema y proporcionndole privilegios de 6superusuario6. En la modalidad de un solo usuario la consola permite iniciar una primera sesi&n, con privilegios especiales, e impide que las otras lneas de comunicaci&n acepten iniciar sesiones nuevas. Esta modalidad se usa con frecuencia para revisar y reparar sistemas de arc+ivos, reali.ar prue!as de funciones !sicas del sistema y para otras actividades que requieren uso e*clusivo de la computadora. 3nit crea otro proceso, que espera pacientemente a que alguien entre en sesi&n en alguna lnea de comunicaci&n. Cuando esto sucede, reali.a ajustes en el protocolo de la lnea y ejecuta el programa login, que se encarga de atender inicialmente a los nuevos usuarios. "i la clave del usuario, y la contrase'a proporcionadas son las correctas, entonces entra en operaci&n el programa "+ell, que en lo sucesivo se encargar de la atenci&n normal del usuario que se dio de alta en esa terminal. 9 partir de ese momento el responsa!le de atender al usuario en esa terminal es el intrprete "+ell. Cuando se desea terminar la sesi&n +ay que desconectarse de "+ell 7y, por lo tanto, de 2ni*8, mediante una secuencia especial de teclas 7usualmente. > C)$ ? - 8. 9 partir de ese momento la terminal queda disponi!le para atender a un nuevo usuario.

Sistema Operativo UNIX

Pgina 6

Administracin de Archivos y Directorios


El sistema de arc+ivos de 2ni*5 esta !asado en un modelo ar!orescente y recursivo, en el cual los nodos pueden ser tanto arc+ivos como directorios, y estos 0ltimos pueden contener a su ve. directorios o su!directorios. e!ido a esta filosofa, se maneja al sistema con muy pocas &rdenes, que permiten una gran gama de posi!ilidades. )odo arc+ivo de 2ni* est controlado por m0ltiples niveles de protecci&n, que especifican los permisos de acceso al mismo. $a diferencia que e*iste entre un arc+ivo de datos, un programa, un manejador de entrada,salida o una instrucci&n ejecuta!le se refleja en estos parmetros, de modo que el sistema operativo adquiere caractersticas de co+erencia y elegancia que lo distinguen. $a ra. del sistema de arc+ivos 7conocida como root 8 se denota con el sm!olo @,A, y de a+ se desprende un conjunto de directorios que contienen todos los arc+ivos del sistema de c&mputo. Cada directorio, a su ve., funciona como la su!ra. de un nuevo r!ol que depende de l y que tam!in puede estar formado por directorios o su!directorios y arc+ivos. 2n arc+ivo siempre ocupar el nivel ms !ajo dentro del r!ol, porque de un arc+ivo no pueden depender otros5 si as fuera, sera un directorio. Es decir, los arc+ivos son como las +ojas del r!ol. "e define en forma unvoca el nom!re de todo arc+ivo 7o directorio8 mediante lo que se conoce como su trayectoria 7pat+ name8: es decir, el conjunto completo de directorios, a partir de root 7,8, por los que +ay que pasar para poder llegar al directorio o arc+ivo deseado. Cada nom!re se separa de los otros con el sm!olo ,, aunque tan s&lo el primero de ellos se refiere a la ra.. Por ejemplo, el arc+ivo

Sistema Operativo UNIX

Pgina 7

u,gerencia,a!rilBCl,cartaD tiene toda esta trayectoria como nom!re a!soluto, pero se llama gerencia,a!rilBCl,cartaD, sin =ra diagonal inicial, si se o!serva desde el directorio ,u. Para los usuarios que estn normalmente en el directorio ,u,gerencia, el arc+ivo se llama a!rilBCl,cartaD. 9s, tam!in puede e*istir otro arc+ivo llamado cartaD, pero dentro de alg0n otro directorio y en caso de ser necesario se empleara el nom!re de la trayectoria 7completa o en partes, de derec+a a i.quierda8 para distinguirlos. 2ni* ofece medios muy sencillos para colocarse en diferentes puntos del r!ol que forma el sistema de arc+ivos, que para el ejemplo anterior podra ser el siguiente:

Como se dijo antes, desde el punto de vista del directorio a!rilBC, que a su ve. pertenece al directorio gerencia del directorio ,u, !asta con el nom!re cartaD para apuntar al arc+ivo en cuesti&n. En esta forma se maneja el sistema completo de arc+ivos y se dispone de un conjunto de &rdenes de "+ell 7adems de m0ltiples variantes8 para +acer diversas manipulaciones, como crear directorios, moverse dentro del sistema de arc+ivos, copiarlos, etctera. 2ni* incluye, adems, m0ltiples esquemas para crear, editar y procesar documentos. E*isten varios tipos de editores, formadores de te*tos, macroprocesadores para te*tos, formadores de ta!las, preprocesadores de e*presiones matemticas y un gran n0mero de ayudas y utileras diversas, que se mencionan ms adelante. 9 continuaci&n se descri!e el modo de funcionamiento de 2ni*, con !ase en un modelo de estudio de sistemas operativos que lo divide en 6capas6 jerrquicas para su mejor comprensi&n.

Sistema Operativo UNIX

Pgina 8

Manejo de archivos y de informacin


Como ya se descri!i&, la estructura !sica del sistema de arc+ivos es jerrquica, lo que significa que los arc+ivos estn almacenados en varios niveles. "e puede tener acceso a cualquier arc+ivo mediante su trayectoria, que especifica su posici&n a!soluta en la jerarqua, y los usuarios pueden cam!iar su directorio actual a la posici&n deseada. E*iste tam!in un mecanismo de protecci&n para evitar accesos no autori.ados. $os directorios contienen informaci&n para cada arc+ivo, que consiste en su nom!re y en un n0mero que el 1ernel utili.a para manejar la estructura interna del sistema de arc+ivos, conocido como el nodo-i. #ay un nodo-i para cada arc+ivo, que contiene informaci&n de su directorio en el disco, su longitud, los modos y las fec+as de acceso, el autor, etc. E*iste, adems, una ta!la de descriptores de arc+ivo, que es una estructura de datos residente en el disco magntico, a la que se tiene acceso mediante el sistema mencionado de E," por !loques. El control del espacio li!re en el disco se mantiene mediante una lista ligada de !loques disponi!les. Cada !loque contiene la direcci&n en disco del siguiente !loque en la cadena. El espacio restante contiene las direcciones de grupos de !loques del disco que se encuentren li!res. e esta forma, con una operaci&n de E,", el sistema o!tiene un conjunto de !loques li!res y un apuntador para conseguir ms. $as operaciones de E," en arc+ivos se llevan a ca!o con la ayuda de la correspondiente entrada del nodo-i en la ta!la de arc+ivos del sistema. El usuario normalmente desconoce los nodos-i porque las referencias se +acen por el nom!re sim!&lico de la trayectoria. $os procesos emplean internamente funciones primitivas 7llamadas al sistema8 para tener acceso a los arc+ivos5 las ms comunes son open, creat, read, (rite, see<, close y unlin<, aunque s&lo son empleadas por los programadores, no por los usuarios finales del sistema. )oda esta estructura fsica se maneja 6desde afuera6 mediante la filosofa jerrquica de arc+ivos y directorios ya mencionada, y en forma totalmente transparente para el usuario. 9dems, desde el punto de vista del sistema operativo, un arc+ivo es muy parecido a un dispositivo. $as ventajas de tratar a los dispositivos de E," en forma similar a los arc+ivos normales son m0ltiples: un arc+ivo y un dispositivo de E," se tornan muy parecidos5 los nom!res de los arc+ivos y de los dispositivos tienen la misma sinta*is y significado, as que a un programa que espera un nom!re de arc+ivo como parmetro puede drsele un nom!re de dispositivo 7con esto se logra interacci&n rpida y fcil entre procesos de alto nivel8. El sistema 2ni* ofrece varios niveles de protecci&n para el sistema de arc+ivos, que consisten en asignar a cada arc+ivo el n0mero 0nico de identificaci&n de su due'o, junto con nueve !its de protecci&n, que especifican permisos de lectura, escritura y ejecuci&n para el propietario, para otros miem!ros de su grupo 7definido por el administrador del sistema8 y para el resto de los usuarios. 9ntes de cualquier acceso se verifica su valide. consultando estos !its, que residen en el nodo-i de todo arc+ivo. 9dems, e*isten otros tres !its que se emplean para manejos especiales, relacionados con la clave del superusuario.

Sistema Operativo UNIX

Pgina 9

%tra caracterstica de 2ni* es que no requiere que el conjunto de sistemas de arc+ivos resida en un mismo dispositivo. Es posi!le definir uno o varios sistemas 6desmonta!les6, que residen fsicamente en diversas unidades de disco. E*iste una orden 7m<fs8 que permite crear un sistema de arc+ivos adicional, y una llamada al sistema 7mount8 con la que se a'ade 7y otra con la que se desmonta8 uno de ellos al sistema de arc+ivos glo!al. E3 control de las impresoras de una computadora que funciona con el sistema operativo 2ni* consiste en un su!sistema 7"P%%$8 que se encarga de coordinar los pedidos de impresi&n de m0ltiples usuarios. E*iste un proceso de 1ernel que en forma peri&dica revise las colas de servicio de las impresoras para detectar la e*istencia de pedidos e iniciar entonces las tareas de impresi&n. Este tipo de procesos, que son activados en forma peri&dica por el n0cleo del sistema operativo, reci!en en 2ni* el nom!re de daemons 7duendes8, tal ve. porque se despiertan y aparecen sin previo aviso. %tros se encargan de activar procesos en tiempos previamente determinados por el usuario, o de escri!ir peri&dicamente los contenidos de los !uffers de memoria en el disco magntico.

rocesos! Manejo del rocesador


En 2ni* se ejecutan programas en un medio llamado 6proceso de usuario6. Cuando se requiere una funci&n del 1ernel, el proceso de usuario +ace una llamada especial al sistema y entonces el control pasa temporalmente al n0cleo. Para esto se requiere de un conjunto de elementos de uso interno, que se mencionan a continuaci&n.

Sistema Operativo UNIX

Pgina 10

"e conoce como imagen a una especie de fotografa del am!iente de ejecuci&n de un proceso, que incluye una descripci&n de la memoria, valores de registros generales, status de arc+ivos a!iertos, el directorio actual, etctera. 2na imagen es el estado actual de una computadora virtual, dedicada a un proceso en particular. 2n proceso se define como la ejecuci&n de una imagen. Eientras el procesador ejecuta un proceso, la imagen de!e residir en la memoria principal5 durante la ejecuci&n de otros procesos permanece primera en la memoria principal a men0s que la aparici&n de un proceso activo de mayor prioridad la o!ligue a ser copiada al disco, como ya se dijo. 2n proceso puede encontrarse en uno de varios estados: en ejecuci&n5 listo para ejecutar, o en espera. Cuando se invoca una funci&n del sistema, el proceso de usuario llama al 1ernel como su!rutina. #ay un cam!io de am!ientes y, como resultado, se tiene un proceso del sistema. Estos dos procesos son dos fases del mismo original, que nunca se ejecutan en forma simultnea. E*iste una ta!la de procesos que contiene una entrada por cada uno de ellos con los datos que requiere el sistema: identificaci&n, direcciones de los segmentos que emplea en la memoria, informaci&n que necesita el sc+eduler y otros. la entrada de la ta!la de procesos se asigna cuando se crea el proceso y se li!era cuando ste termina. Para crear un proceso se requiere la iniciali.aci&n de una entrada en la ta!la, as como la creaci&n de segmentos de te*to y de datos. 9dems, es necesario modificar la ta!la cuando cam!ia el estado del proceso o cuando reci!e un mensaje de otro 7para sincroni.aci&n, por ejemplo8. Cuando un proceso termina, su entrada en la ta!la se li!era y queda otro disponi!le para que otro nuevo la utilice. En el sistema operativo 2ni* los procesos pueden comunicarse internamente entre s, mediante el envo de mensajes o se'ales. El mecanismo conocido como intercone*i&n 7pipe8 crea un canal entre dos procesos mediante una llamada a una rutina del 1ernel, y se emplea tanto para pasar datos unidireccionalmente entre las imgenes de am!os, como para sincroni.arlos, ya que si un proceso intenta escri!ir en un pipe ocupado, de!e esperar a que el receptor lea los datos pendientes. $o mismo ocurre en el caso de una lectura de datos ine*istentes: el proceso que intenta leer de!e esperar a que el proceso productor deposite los datos en el canal de intercomunicaci&n. Entre las diferentes llamadas al sistema para el manejo de procesos que e*isten en 2ni* estn las siguientes, algunas de las cuales ya +an sido mencionadas: for< 7sacar una copia a un proceso85 e*ec 7cam!iar la identidad de un proceso85 <ill 7enviar una se'al a un proceso85 signal 7especificar la acci&n por ejecutar cuando se reci!e una se'al de otro proceso8, y e*it 7terminar un proceso8. entro de las tareas del manejo del procesador destaca la asignaci&n dinmica 7sc+eduling8, que en 2ni* resuelve el sc+eduler mediante un mecanismo de prioridades. Cada proceso tiene asignada una prioridad5 las prioridades de los procesos de usuario son menores que la ms peque'a de un proceso del sistema. El 6motor6 que mantiene en movimiento un esquema de multiprogramaci&n es, por un lado, el conjunto de interrupciones que genera el desempe'o de los

Sistema Operativo UNIX

Pgina 11

procesos y, por otro, los constantes recordatorios que +ace el reloj del procesador para indicar que se termin& la fracci&n de tiempo dedicada a cada proceso. En el sistema 2ni*, las interrupciones son causadas por lo que se conoce como eventos, entre los cuales se consideran: la ejecuci&n de una tarea de entrada,salida5 la terminaci&n de los procesos dependientes de otro5 la terminaci&n de la fracci&n de tiempo asignada a un proceso, y la recepci&n de una se'al desde otro proceso. En un sistema de tiempo compartido se divide el tiempo en un determinado n0mero de intervalos o fracciones y se asigna cada una de ellas a un proceso. 9dems 2ni* toma en consideraci&n que +ay procesos en espera de una operaci&n de E," y que ya no pueden aprovec+ar su fracci&n. Para asegurar una distri!uci&n adecuada del procesador entre los procesos se calculan dinmicamente las prioridades de estos 0ltimos, con el fin de determinar cul ser el proceso que se ejecutar cuando se suspenda el proceso activo actual.

Manejo De Memoria

Sistema Operativo UNIX

Pgina 12

ependiendo de la computadora en la que se ejecute, 2ni* utili.a dos tcnicas de manejo de memoria: s(apping y memoria virtual. $o estndar en 2ni* es un sistema de intercam!io de segmentos de un proceso entre memoria principal y memoria secundaria, llamado s(apping lo que significa que se de!e mover la imagen de un proceso al disco si ste e*cede la capacidad de la memoria principal, y copiar el proceso completo a memoria secundaria. Es decir, durante su ejecuci&n, los procesos son cam!iados de y +acia memoria secundaria conforme se requiera. "i un proceso necesita crecer, pide ms memoria al sistema operativo y se le da una nueva secci&n, lo suficientemente grande para acomodarlo. Entonces, se copia el contenido de la secci&n usada al rea nueva, se li!era la secci&n antigua y se actuali.an las ta!las de descriptores de procesos. "i no +ay suficiente memoria en el momento de la e*pansi&n, el proceso se !loquea temporalmente y se le asigna espacio en memoria secundaria. "e copia a disco y, posteriormente, cuando se tiene el espacio adecuado - lo cual sucede normalmente en algunos segundos - se devuelve a memoria principal. Est claro que el proceso que se encarga de los intercam!ios entre memoria y disco 7llamado s(apper8 de!e ser especial y jams podr perder su posici&n privilegiada en la memoria central. El 1ernel se encarga de que nadie intente siquiera interrumpir este proceso, del cual dependen todos los dems. Este es el proceso ; mencionado antes. Cuando se decide traer a la memoria principal un proceso en estado de 6listo para ejecutar6, se le asigna memoria y se copian all sus segmentos. Entonces, el proceso cargado compite por el procesador con todos los dems procesos cargados. "i no +ay suficiente memoria, el proceso de intercam!io e*amine la ta!la de procesos para determinar cul puede ser interrumpido y llevado al disco. #ay una pregunta que surge entonces es Fcul de los posi!les procesos que estn cargados ser desactivado y cam!iado a memoria secundariaG $os procesos que se eligen primero son aquellos que estn esperando operaciones lentas 7E,"8, o que llevan cierto tiempo sin +a!erse movido al disco. $a idea es tratar de repartir en forma equitativa las oportunidades de ejecuci&n entre todos los procesos, tomando en cuenta sus +istorias recientes y sus patrones de ejecuci&n. %tra pregunta es Fcul de todos los procesos que estn en el disco ser trado a memoria principalG. $a decisi&n se toma con !ase en el tiempo de residencia en memoria secundaria. El proceso ms antiguo es el que se llama primero, con una peque'a penali.aci&n para los grandes. Cuando 2ni* opera en mquinas ms grandes, suele disponer de manejo de memoria de paginaci&n por demanda. En algunos sistemas el tama'o de la pgina en 2ni* es de H=D !ytes5 en otros, de =;DC. Para reempla.o se usa un algoritmo que mantiene en memoria las pginas empleadas ms recientemente. 2n sistema de paginaci&n por demanda ofrece muc+as ventajas en cuanto a fle*i!ilidad y agilidad en la atenci&n concurrente de m0ltiples procesos y proporciona, adems, memoria virtual, es decir, la capacidad de tra!ajar con procesos mayores que el de la memoria central. Estos esquemas son !astante complejos y requieren del apoyo de +ard(are especiali.ado.

Sistema Operativo UNIX

Pgina 13

Manejo de entradas y salidas


El sistema de entrada,salida se divide en dos sistemas complementarios: el estructurado por !loques y el estructurado por caracteres. El primero se usa para manejar cintas y discos magnticos, y emplea !loques de tama'o fijo 7H=D o =;DC !ytes8 para leer o escri!ir. El segundo se utili.a para atender a las terminales, lneas de comunicaci&n e impresoras, y funciona !yte por !yte. En general, el sistema 2ni* emplea programas especiales 7escritos en C8 conocidos como manejadores 7drivers8 para atender a cada familia de dispositivos de E,". $os procesos se comunican con los dispositivos mediante llamadas a su manejador. 9dems, desde el punto de vista de los procesos, los manejadores aparecen como si fueran arc+ivos en los que se lee o escri!e5 con esto se logra gran +omogeneidad y elegancia en el dise'o. Cada dispositivo se estructura internamente mediante descriptores llamados n0mero mayor, n0mero menor y clase 7de !loque o de caracteres8. Para cada clase +ay un conjunto de entradas, en una ta!la, que aporta a los manejadores de los dispositivos. El n0mero mayor se usa para asignar manejador, correspondiente a una familia de dispositivos5 el menor pasa al manejador como un argumento, y ste lo emplea para tener acceso a uno de varios dispositivos fsicos semejantes. $as rutinas que el sistema emplea para ejecutar operaciones de E," estn dise'adas para eliminar las diferencias entre los dispositivos y los tipos de acceso. /o e*iste distinci&n entre acceso aleatorio y secuencial, ni +ay un tama'o de registro l&gico impuesto por el sistema. El tama'o de un arc+ivo ordinario est determinado por el n0mero de !ytes escritos en l5 no es necesario predeterminar el tama'o de un arc+ivo. El sistema mantiene una lista de reas de almacenamiento temporal 7!uffers8, asignadas a los dispositivos de !loques. El 1ernel usa estos !uffers con el o!jeto de reducir el trfico de E,". Cuando un programa solicita una transferencia, se !usca primero en los !uffers internos para ver si el !loque que se requiere ya se encuentra en la memoria principal 7como resultado de una operaci&n de lectura anterior8. "i es as, entonces no ser necesario reali.ar la operaci&n fsica de entrada o salida. E*iste todo un mecanismo de manipulaci&n interna de !uffers 7y otro de manejo de listas de !ytes8, necesario para controlar el flujo de datos entre los dispositivos de !loques 7y de caracteres8 y los programas que los requieren. Por 0ltimo, y de!ido a que los manejadores de los dispositivos son programas escritos en lenguaje C, es relativamente fcil reconfigurar el sistema para ampliar o eliminar dispositivos de E," en la computadora, as como para incluir tipos nuevos.

Sistema Operativo UNIX

Pgina 14

"en#$aje de control del sistema operativo


Entre los rasgos distintivos de 2ni* est el lenguaje de control que emplea, llamado "+ell. Es importante anali.ar dos funciones ms de "+ell, llamadas redireccionamiento e 3ntercone*i&n. 9sociado con cada proceso +ay un conjunto de descriptores de arc+ivo numerados ;, 3 y D, que se utili.an para todas las transacciones entre los procesos y el sistema operativo. El descriptor de arc+ivo ; se conoce como la entrada estndar5 el descriptor de arc+ivo =, como la salida estndar, y el descriptor D, como el error estndar. En general, todos estn asociados con la terminal de vdeo, pero, de!ido a que inicialmente son esta!lecidos por "+ell, es posi!le reasignarlos. 2na parte de la orden que comience con el sm!olo G se considera como el nom!re del arc+ivo que ser a!ierto por "+ell y que se asociar con la entrada estndar5 en su ausencia, la entrada estndar se asigna a la terminal. En forma similar, un arc+ivo cuyo nom!re est precedido por el sm!olo ? reci!e la salida estndar de las operaciones. Cuando "+ell interpreta la orden califica > e*amen ? resulta llama a ejecuci&n al programa califica 7que ya de!e estar compilado y listo para ejecutar8 y detecta la e*istencia de un arc+ivo que toma el lugar de la entrada estndar y de otro que reempla.a a la salida estndar. espus, pasa como datos de lectura los contenidos del arc+ivo e*amen recin a!ierto 7que de!e e*istir previamente8 al programa ejecuta!le. Conforme el programa produce datos como salida, stos se guardan en el arc+ivo resulta que "+ell crea en ese momento. En la teora de lenguajes formales desempe'an un importante papel las gramticas llamadas de tipo I 7tam!in conocidas como regulares8, que tienen m0ltiples aplicaciones en el manejo de lenguajes. E*isten unas construcciones gramaticales conocidas como e*presiones regulares, con las que se puede +acer referencia a un conjunto ilimitado de nom!res con estructura le*icogrfica similar5 esto lo aprovec+a "+ell para dar al usuario facilidades e*presivas adicionales en el manejo de los nom!res de los arc+ivos. 9s, por ejemplo, el nom!re carta J se refiere a todos los arc+ivos que comiencen con el prefijo cartaJ y que sean seguidos por cualquier su!cadena, incluyendo la cadena vaca5 por ello, si se incluye el nom!re cartaJ en alguna orden, "+ell la aplicar a los arc+ivos carta, carta=, cartaD y cualquier otro que cumpla con esa especificaci&n a!reviada. En general, en lugares donde se emplea un nom!re o una trayectoria, "+ell permite utili.ar una e*presi&n regular que sirve como a!reviatura para toda una familia de ellos, y automticamente repite el pedido de atenci&n para los componentes. E*isten adems otros caracteres especiales que "+ell reconoce y emplea para el

Sistema Operativo UNIX

Pgina 15

manejo de e*presiones regulares, lo que proporciona al lenguaje de control de 2ni* mayor potencia y capacidad e*presiva. En 2ni* e*iste tam!in la posi!ilidad de ejecutar programas sin tener que atenderlos en forma interactiva, sino simulando paralelismo 7es decir, atender de manera concurrente varios procesos de un mismo usuario8. Esto se logra agregando el sm!olo K al final de la lnea en la que se escri!e la orden de ejecuci&n. Como resultado, "+ell no espera que el proceso 6+ijoLL termine de ejecutar 7como +ara normalmente8, sino que regresa a atender al usuario inmediatamente despus de +a!er creado el proceso asincr&nico, simulando en esta forma el procesamiento por lotes 7 !atc+ 8 Para cada uno de estos procesos "+ell proporciona, adems, el n0mero de identificaci&n, por lo que si fuera necesario el usuario podra cancelarlo posteriormente, o averiguar el avance de la ejecuci&n. $a comunicaci&n interna entre procesos 7es decir, el envo de mensajes con los que los diversos procesos se sincroni.an y coordinan8 ocurre mediante el mecanismo de intercone*iones 7pipes8 ya mencionado, que conecta la salida estndar de un programa a la entrada estndar de otro, como si fuera un conducto con dos e*tremos, cada uno de los cuales est conectado a su ve. a un proceso distinto. esde "+ell puede emplearse este mecanismo con el sm!olo M en la lnea donde se escri!e la orden de ejecuci&n. 9s en el ejemplo: 7califica > tarea M sorte ? lista8 K se emplean las caractersticas de intercone*i&n, redireccionamiento y asincrona de procesos para lograr resultados difciles de o!tener en otros sistemas operativos. 9qu se pide que, en forma asincr&nica 7es decir, dejando que la terminal siga disponi!le para atender otras tareas del mismo usuario8, se ejecute el programa califica para que lea los datos que requiere del arc+ivo tareas5 al terminar, se conectar con el proceso sort 7es decir, pasar los resultados intermedios8 para que contin0e el procesamiento y se arreglen los resultados en orden alfa!tico5 al final de todo esto, los resultados quedarn en el arc+ivo lista. Con esta otra orden, por ejemplo, se !usca o!tener todos los renglones que contengan las pala!ras 6contrato6 o 6empleado6 en los arc+ivos en disco cuyos nom!res comiencen con la letra 6E6 7lo cual se denota mediante una e*presi&n regular8. Para lograrlo, se +ace uso de una funci&n llamada egrep, especial para el manejo de patrones y com!inaciones de e*presiones regulares dentro de los arc+ivos: egrep-n LcontratoL LempleadoL E J $os resultados aparecen as: Emple=: H: en caso de que un empleado decide +acer uso de la facilidad, Emple=:N: y el contrato as lo considere las o!ligaciones de la EmpleD:B: Clusula 33: El contrato colectivo de tra!ajo

Sistema Operativo UNIX

Pgina 16

EmpleD:=H: Oracci&n ll3: El empleado tendr derec+o, de acuerdo con lo El tercer rengl&n, por ejemplo, muestra el noveno rengl&n del arc+ivo EmpleD, que contiene una de las pala!ras !uscadas. Como 2ni* fue dise'ado para servir de entorno en las la!ores de dise'o y producci&n de programas, ofrece - adems de su filosofa misma - un rico conjunto de +erramientas para la creaci&n de sistemas complejos, entre las que destaca el su!sistema ma<e. Este 0ltimo ofrece una especie de lenguaje muy sencillo, con el cual el programador descri!e las relaciones estructurales entre los m&dulos que configuran un sistema completo, para que de a+ en adelante ma<e se encargue de mantener el sistema siempre al da. Es decir, si se modifica alg0n m&dulo, se reempla.a o se a'ade otro, las compilaciones individuales, as como las cargas y ligas a que +aya lugar, sern reali.adas en forma automtica, por esta +erramienta. Con una sola orden, entonces, es posi!le efectuar decenas de compilaciones y ligas predefinidas entre m&dulos, y asegurarse de que en todo momento se tiene la 0ltima versi&n de un sistema, ya que tam!in se lleva cuenta automtica de las fec+as de creaci&n, modificaci&n y compilaci&n de los diversos m&dulos. e esta manera, se convierte en una +erramienta casi indispensa!le al desarrollar aplicaciones que requieren decenas de programas que interact0an entre s o que mantienen relaciones jerrquicas. %tras +erramientas interesantes son ar, dise'ado para crear y mantener !i!liotecas de programas 7que sern luego utili.adas por otros programas para efectuar las funciones ya definidas sin tener que duplicar el c&digo85 a(<, un lenguaje para reconocimiento de patrones y e*presiones regulares 7es decir, generadas por una gramtica regular o de tipo I8, 0til para e*traer informaci&n de arc+ivos en forma selectiva5 le*, un generador de anali.adores le*icogrfico, y yacc, un compilador de compiladores. Estos dos 0ltimos se emplean como +erramientas en la creaci&n de compiladores y procesadores de lenguajes. $a lista complete de funciones, &rdenes de su!sistemas que forman parte de las utileras del sistema operativo 2ni* es realmente grande, e incluye ms de un centenar, que se pueden agrupar en los siguientes ru!ros: Compiladores de compiladores. Ejecuci&n de programas. Oacilidades de comunicaciones. Ounciones para control de status. Ounciones para control de usuarios. Ounciones para impresi&n. #erramientas de desarrollo de programaci&n. $enguaje C, funciones y !i!liotecas asociados. Eacroprocesamiento. Eanejo de directorios y arc+ivos. Eanejo de grficas. Eanejo de informaci&n. Eanejo de terminales. Eantenimiento y respaldos. %tros lenguajes algortmicos integrados. Preparaci&n de documentos.

Sistema Operativo UNIX

Pgina 17

)ra!ajo reali.ado por: Eartinoli iego martinodPtelefonica.com.ar

También podría gustarte