Last revised:
April 02, 2006
Notas de Clase Para Curso de Programacion: Unix
Andrés Montano Pellegrini
![]()
![]()
![]()
Next:Comandos Sencillos Up:
Contenido
A. Introduccion a UNIX
- Prologo
UNIX es un sistema operativo grande y complejo que corre una gran variedad de plataformas de hardware, desde PC's hasta mainframes. A pesar de incluir literalmente cientos de comandos con miles de opciones asociadas, mantiene una estructura consistente independiente de la plataforma de hardware en donde este corriendo.
- Componentes del software que incluye:
- El Kernel
Este es el corazon del sistema operativo. El kernel es el encargado de comunicarse directamente con el sistema de hardwarepor lo que debe ser adaptado a la arquitectura unica de cada plataforma de hardware. Ademas se encarga de coordinar muchas de las funciones internas del sistema operativo. Como UNIX es un sistema multiusuario, multiprogramado el kernel debe administar toda la calendarizacion y administracion de memoria.
- El shell
Es la parte del sistema operativo que actua como un enlace entre los comandos que el usuario escribe y las actividades que el kernel realiza. Cuando el usuario escribe comandos en el shell, este los traduce a system calls, los cuales le hacen requerimientos al kernel ha llevar a cabo alguna tarea. El proposito del shell es hacer el sistema operativo mas amigable. El usuario puede escoger que shell tiene las caracteristicas que a el le funcionen mejor. Algunos shells son:
- Bourne shell
- C shell
- Korn shell
- Utilitarios
Estos son los programas que llevan a cabo tareas especificas para los usuarios de sistema. Estos utilitarios pueden consistir en:
- Edicion de texto
- Formato de texto
- Correccion de ortografia
- Calculos matematicos
- Administracion de archivos y directorios
- Administracion del sistema
- Mantenimiento de la seguridad del sistema
- Impresión
- Desarrollo de programas
- Filtrado de datos
- El Kernel
- Sistema de Archivos
Los datos se agrupan en colecciones llamadas archivos. Estas pueden ser:
- Archivos de texto ordinarios, en donde los usuarios almacenan datos
- Programas, archivos que almacenan codigo de maquina
- Archivos especiales, archivos dispuestos para los dispositivos del sistema como terminales o impresoras.
- Proceso
Cada vez que el usuario ejecuta un utilitario o programa en UNIX inicializa un proceso. Un sistema multiprogramado, como UNIX, es capaz de correr varios procesos al mismo tiempo. El kernel se encarga de controlar el tiempo y las prioridades de ejecucion. Hay dos tipos de procesos: procesos de sistema y procesos de usuario. Cuando el usuario corre un utilitario, por ejemplo, inicia un proceso de usuario. Los procesos de sistema son iniciados por el kernel para mantener control del sistema operativo. Por ejemplo cuando un un programa necesita memoria para ejecutarse se inicia un proceso de sistema.
Siendo UNIX un sistema de tiempo compartido, cuando hay un solo CPU, el procesador:
- Le dedica unos cuantos segundos a cada proceso
- Interrumpe el proceso actual
- Ejecuta otro proceso (siguiente en prioridad)
Esto crea la ilusion que el CPU esta dedicado a cada proceso, y que todos los procesos se ejecutan simultaneamente. Ha esto se le llama preemptive scheduling. Para que parezca cada proceso que esta corriendo de una forma ininterrumpida, el procesador calendariza de una forma justa. Por lo general por round-robin
![]()
![]()
![]()
Next:Comandos Sencillos Up:
Contenido