Está en la página 1de 39

ESCUELA DE INGENIERA DE SISTEMAS Y COMPUTACIN

UNIX & GNU Linux


Sesin 14

Sistemas Operativos

Juan Rafael Galn Santisteban USAT2013

UNIX
Propiedades del UNIX Historia Arquitetura del Sistema

El ncleo
La Shell Sistema de Archivos Procesos

Sistemas Operativos Unix y Linux

14.2

Juan Rafael Galn Santisteban USAT2013

Propiedades del UNIX


Potente, flexible y verstil Multiusuario y multitarea

Buen entorno para redes


Portabilidad Sistema de Cdigo Abierto Desarrollado en su mayor parte en un lenguaje de alto nivel

(Lenguaje C)
Sistema Operativo de Tiempo Compartido

Sistemas Operativos Unix y Linux

14.3

Juan Rafael Galn Santisteban USAT2013

Historia del Unix


Primera a Sexta Edicin AT&T System V -> SCO Unix Berkley Software Distributions (BSD) -> FreeBSD y NetBSD Linux Variantes del UNIX

Sistemas Operativos Unix y Linux

14.4

Juan Rafael Galn Santisteban USAT2013

Variantes de Unix
SOLARIS

Sistema Operativo de Sun Microsystems

IRIX

Para estaciones de trabajo y ordenadores de Silicon Graphics.


Sistema Operativo de ordenadores Hewlett-Packard La ltima versin es HP-UX 11.0 El sistema en uso por Digital (Compaq-ahora HP). Soporte de 64 bits.

HP-UX

DEC OSF/1

Sistemas Operativos Unix y Linux

14.5

Juan Rafael Galn Santisteban USAT2013

Arquitectura del S.O. UNIX


Interfaz del Usuario de Aplicaciones
Aplicaciones: Editores, Navegadores, ftp, telnet, compiladores Shell de UNIX

Interfaz del Programador de Aplicaciones

Bibliotecas de lenguajes: C, C++, Java, Fortran,etc.

Interfaz de llamadas al sistema

Sistema Operativo

Ncleo (Kernel) Administracin de Archivos, Administracin del Almacenamiento, Administracin de Procesos, etc.

Controladores (Drivers) Hardware: Cables, Transistores, CPU, Memoria, Disco, etc.


Sistemas Operativos Unix y Linux 14.6 Juan Rafael Galn Santisteban USAT2013

El ncleo
Programas de Aplicacin Shell Ncleo

Interacta directamente con el hardware

Componentes del Compilador

Compilador

Hardware

Funciones: Gestin memoria Control de acceso al ordenador y permisos Mantenimiento sistema de archivos Manejo interrupciones Manejo Errores Servicios I/O

Asignacin de recursos entre usuarios Control de procesos y comunicaciones entre procesos

Sistemas Operativos Unix y Linux

14.7

Juan Rafael Galn Santisteban USAT2013

La Shell

Intrprete de rdenes (equivale al COMMAND.COM de MS-DOS)

Incluye un lenguaje de programacin para procesamiento por lotes


Existen distintos tipos de shell:

Sh C-shell, k-shell, tc-shell bash-shell (LINUX por defecto)

Sistemas Operativos Unix y Linux

14.8

Juan Rafael Galn Santisteban USAT2013

Sistema de archivos

Archivo: unidad bsica de organizacin de la informacin.


Mtodo lgico Sistema de archivos jerrquico Archivos locales o en red transparentes (NFS)

Sistemas Operativos Unix y Linux

14.9

Juan Rafael Galn Santisteban USAT2013

Archivos
Estructura bsica para almacenar informacin

Secuencias de bytes que se almacenan


Posee un nombre nico que lo identifica Pertenecen a un propietario y un grupo Tienen asociados un conjunto de permisos

Reglas para el nombre: Nmero mximo de caracteres. (Depende

de la versin de UNIX)
Es aconsejable utilizar caracteres que no tengan un significado

especial para la shell, para evitar confusiones.


Los nombres pueden acabar con cualquier extensin, o mltiples

extensiones.

Sistemas Operativos Unix y Linux

14.10

Juan Rafael Galn Santisteban USAT2013

Archivos especiales

Los dispositivos (cdrom, disquette,..) se consideran como

archivos.
Se puede leer y escribir en un dispositivo como si fuera un

archivo.
Se puede transferir el contenido de un dispositivo a un

fichero y viceversa (aunque no todos los dispositivos lo permiten).

Sistemas Operativos Unix y Linux

14.11

Juan Rafael Galn Santisteban USAT2013

Directorios
Permiten agrupar ficheros
Poseen una estructura jerrquica En principio no hay limitacin del nmero de ficheros dentro de un

directorio. Slo estamos limitado por el espacio en disco


Estructura de rbol:
/ (root)

etc

dev

home

bin

javier

nieves

ignacio

.profile

datos

clientes

Sistemas Operativos Unix y Linux

14.12

Juan Rafael Galn Santisteban USAT2013

El rbol de directorios de UNIX estndar (I)


/ /home /bin /usr /dev

Directorio raz (inicio del rbol). Contiene los directorios de los usuarios. Ordenes usuales y utilidades. Programas, libreras y ficheros de uso normal Dispositivos del sistema (realmente no contiene ficheros sino referecias a dispositivos)

Sistemas Operativos Unix y Linux

14.13

Juan Rafael Galn Santisteban USAT2013

El rbol de directorios de UNIX estndar (II)


/etc
/sbin /tmp /var /proc /lib

Contiene ficheros de configuracin.


Contiene programas necesarios de inicio del sistema. Contiene ficheros temporales. Contiene ficheros de spool de datos, logs.... Informacin sobre el sistema. Libreras de ejecucin.

Sistemas Operativos Unix y Linux

14.14

Juan Rafael Galn Santisteban USAT2013

Procesos (I)

Cada programa que ejecuta el ordenador es un

proceso.
El S.O. puede ejecutar varios procesos asignando

pequeas fracciones de tiempo a cada uno de forma que parece que todos funcionan simultneamente.
Algunos procesos pueden estar congelados de

forma que se le dedica el tiempo a aquellos procesos que realmente necesitan tiempo.

Sistemas Operativos Unix y Linux

14.15

Juan Rafael Galn Santisteban USAT2013

Procesos (II)
Un proceso puede crear otro proceso. Relacin padre-hijo Init es el proceso padre de todos. A cada proceso se le asigna un nmero (PID) process ID Un daemon (demonio) es un proceso residente que generalmente est a

la espera de realizar alguna funcin. Ej: lpd es el daemon de impresin.

Sistemas Operativos Unix y Linux

14.16

Juan Rafael Galn Santisteban USAT2013

Procesos (III)
Si un proceso padre muere, tambin desaparecern sus procesos hijos. Esto puede evitarse con

nohup comando &

En este caso es el abuelo que har las veces de padre. Es importante que una mquina UNIX disponga de mucha memoria RAM,

para tratar de tener la mayor cantidad de informacin en RAM, incluidos los procesos en ejecucin.
UNIX permite memoria virtual.

Es til pero puede ralentizar considerablemente un proceso (xosview)

Sistemas Operativos Unix y Linux

14.17

Juan Rafael Galn Santisteban USAT2013

Estados posibles de procesos


En ejecucin (Running) Dormidos (Sleeping)

En espera de Entrada/Salida (Waiting)


Zombies (Z)

Sistemas Operativos Unix y Linux

14.18

Juan Rafael Galn Santisteban USAT2013

Planificacin del procesos


El S.O. planifica en funcin de:

La prioridad del proceso Los requisitos de CPU en instantes anteriores

Si se pueden suspender un proceso por procesos de espera.


Si se deben atender interrupciones de perifricos (de disco, red local, puertos serie,...)

Sistemas Operativos Unix y Linux

14.19

Juan Rafael Galn Santisteban USAT2013

Seales a procesos
kill enva una seal a un proceso. Todos los procesos cuando reciben la seal 9 (SIGKILL) entienden que

deben desaparecer .
Otra seal til es la 1 (SIGHUP) pues suele utilizarse en muchos

daemons para reactualizar sus tablas.

Ej: kill 1 389 kill SIGHUP 389

Sistemas Operativos Unix y Linux

14.20

Juan Rafael Galn Santisteban USAT2013

X-Windows

Similar a windows Concepto de servidor Editores: xemacs Graficos: xmgrace, gnuplot, ..

Sistemas Operativos Unix y Linux

14.21

Juan Rafael Galn Santisteban USAT2013

LINUX
Historia Caractersticas Arquitetura del Sistema

Processos y Threads
Gestin del Processador Gestin de Memoria Sistema de Archivos Gestin de Entrada/Salida

Sistemas Operativos Unix y Linux

14.22

Juan Rafael Galn Santisteban USAT2013

Historia
1976 1971 1969 1988 1986 1984 1982 1981 1979

UNICS UNIX V1 UNIX V6

UNIX V7 System III System V SVR2 SVR3 SVR4 OSF/ 1 Solaris SVR4.2

1986 1983 1981 1980 1979 1978

1BSD 2BSD Ultrix 3BSD 4BSD 4.1BSD SunOS 4.2BSD Mach 4.3BSD Irix 4.4BSD FreeBSD OpenBSD

Xenix

Minix AIX Chorus SCO Unix Linux

1992

UnixWare
Sistemas Operativos Unix y Linux

1993

14.23

Juan Rafael Galn Santisteban USAT2013

..// Historia
1991: inicialmente desarrollado por Linus Torvalds para PC-386 1994: kernel 1.0 1996: kernel 2.0 e 2.1

1999: kernel 2.2.0 e 2.3.0


2001: kernel 2.4.0 e 2.5.0 2003: kernel 2.6.0 2004: kernel 2.2.26 2009: kernel 2.4.37.2 e 2.6.30.1

Sistemas Operativos Unix y Linux

14.24

Juan Rafael Galn Santisteban USAT2013

Caractersticas
Ms de seis millones de lneas de cdigo en C y ensamblador Ms de 14.000 archivos que ocupan ms de 230 MB Cdigo fuente disponible en la GNU GPL (Licencia Pblica General) Ofrece sin interfaz grfica, los servicios pblicos, compiladores,

herramientas de gestin Varias distribuciones: Red Hat, CentOS, Fedora, Debian, Slackware, Ubuntu

Sistemas Operativos Unix y Linux

14.25

Juan Rafael Galn Santisteban USAT2013

..// Caractersticas
Multiprogramacin / multitarea Multiusario Multiprocesamiento simtrico

Soporte para sistemas NUMA


Kernel reentrante y mdulos de carga por demanda Interrupciones y excepciones Semforos y bloqueos de giro Procesos e Hilos (proceso ligero) Memoria virtual, memoria compartida y archivos mapeados

Sistemas Operativos Unix y Linux

14.26

Juan Rafael Galn Santisteban USAT2013

Arquitectura del Sistema

Sistemas Operativos Unix y Linux

14.27

Juan Rafael Galn Santisteban USAT2013

Procesos e Hilos
El proceso es "una instancia de un programa en ejecucin" Descriptor de procesos es una estructura de datos que incorpora el proceso

dentro del sistema operativo y tiene toda la informacin necesaria para la ejecucin del proceso

Sistemas Operativos Unix y Linux

14.28

Juan Rafael Galn Santisteban USAT2013

Procesos e Hilos
Descriptor de Proceso

Estado PID Prioridad Espacio de direccionamiento Terminales asociados Archivos abiertos Seales recibidas Punteros a otras estructuras

Sistemas Operativos Unix y Linux

14.29

Juan Rafael Galn Santisteban USAT2013

Procesos e Hilos
Los procesos son creados por la llamada al sistema fork()

El proceso que ejecuta fork() se considera el proceso padre y el proceso creado es el proceso hijo Proceso hijo hereda el cdigo fuente y rea de datos del proceso padre, implementando una tcnica de copy-onwrite

Todos los procesos son descendientes de proceso init, creado al final del arranque del sistema operativo

Los procesos se eliminan por la llamada al sistema exit() El programa a ejecutar se define por la llamada al sistema

exec()

Sistemas Operativos Unix y Linux

14.30

Juan Rafael Galn Santisteban USAT2013

Procesos e Hilos
Estados y cambios de

estados

Sistemas Operativos Unix y Linux

14.31

Juan Rafael Galn Santisteban USAT2013

Gestin del Processador


Preferencia por tiempo

Cada proceso tiene un intervalo de tiempo para ejecutar Al final de la porcin de tiempo se retira del proceso y la CPU ejecuta otro proceso El proceso eliminado puede volver a ejecutar ms tarde La porcin de tiempo es dinmica y depende de la prioridad del proceso

Sistemas Operativos Unix y Linux

14.32

Juan Rafael Galn Santisteban USAT2013

Gestin del Processador


Preferencia por prioridad

Si un proceso de prioridad ms alta est listo, el proceso en ejecucin se detiene, colocado en el estado preparado y el proceso de mayor prioridad asume el procesador Los procesos de la misma prioridad son tratados en esquema de cola circular

Sistemas Operativos Unix y Linux

14.33

Juan Rafael Galn Santisteban USAT2013

Gestin del Processador


Niveles de prioridad

140 niveles, siendo cero la mayor prioridad y 139 el de menor prioridad Prioridades entre 0 y 99 se denominan en tiempo real: sin intervalo de tiempo. Prioridades entre 100 y 139 son los derechos preferentes de tiempo y prioridad.

Sistemas Operativos Unix y Linux

14.34

Juan Rafael Galn Santisteban USAT2013

Gestin de Memoria
Memoria virtual Permite ejecutar programas ms grandes que la memoria fsica

(MF)
Permite la creacin de estructuras de datos ms grande que el MF
Slo partes de los programas tienen que estar en MF Los procesos pueden compartir bibliotecas, utilidades y programas

en MF
Los programas pueden ser asignados en cualquier posicin del MF
Permite cargar un mayor nmero de procesos a la capacidad de la

MF

Sistemas Operativos Unix y Linux

14.35

Juan Rafael Galn Santisteban USAT2013

Gestin de Memoria
Espacio de direcciones virtual de 4 GB (Intel 32 bits), 64 GB con PAE y 256

TB (Intel 64-bit)
Traduccin de direcciones con las tablas de pginas Pginas de 4 KB (32-bit) o 8 KB (64 bits) Hecho en el hardware MMU (Memory Management Unit) Paginacin por demanda

Sistemas Operativos Unix y Linux

14.36

Juan Rafael Galn Santisteban USAT2013

Gestin de Memoria
Swapping

Antes de ser liberados, las pginas se escriben en el disco (page out). En general, las pginas modificadas.

Cuando la pgina se hace referencia de nuevo se produce la lectura de la pgina del disco a la memoria (page in)
El rea de intercambio puede ser toda una particin o un archivo. Puede existir mientras varias zonas de intercambio. Se puede desactivar.

Sistemas Operativos Unix y Linux

14.37

Juan Rafael Galn Santisteban USAT2013

Referencias:
www.levenez.com/unix/ www.kernel.org www.gnu.org

www.distrowatch.com

Sistemas Operativos Unix y Linux

14.42

Juan Rafael Galn Santisteban USAT2013

Preguntas???

GRACIAS
Sistemas Operativos Unix y Linux 14.43 Juan Rafael Galn Santisteban USAT2013

También podría gustarte