1. UNIVERSIDAD DEL CENTRO DE VERACRUZ
Calle Papaloapan S/N Esq. Independencia.
Col. Centro Tres Valles, Veracruz.
Clave: 30MSU0267P
SISTEMAS OPERATIVOS
DOCENTE:
M.S.C. JOSE ANTONIO BARRALES ROSALES
INTEGRANTES DEL EQUIPO:
L.I.S.C GUADALUPE RAMIREZ VAZQUEZ
L.C JUAN CARLOS MARTINEZ OVANDO
L.I.S.C ROSA ISELA SOLANO ANDRADE
MAESTRIA EN SISTEMAS COMPUTACIONALES
19 DE FEBRERO DEL 2014.
2. MAESTRIA EN SISTEMAS COMPUTACIONALES
SISTEMAS OPERATIVOS
1.- ¿QUIÉN CREO GNU?
El desarrollo de GNU fue iniciado por Richard Stallman en 1983 y fue el
objetivo original de la Free Software Foundation (FSF), pero a fecha de
diciembre de 2013 todavía no hay versión estable de GNU. Otros núcleos como
Linux también pueden usarse junto con GNU.
2.- DIFERENCIA ENTRE KERNEL Y NUCLEO.
El kernel inicia un proceso planificador (para permitir multitarea) y se ejecuta
primero el modo usuario (es decir, fuera del espacio del núcleo), luego el
programa init (que establece el entorno del usuario, permite la interacción del
usuario y acceso), momento en el que el kernel se inactiva.
Las llamadas al sistema las cuales le señalan al núcleo que tareas debe realizar
(abrir, escribir en un archivo, ejecutar un programa, finalizar y obtener hora y
fecha). La manipulación del hardware se realiza por medio de controladores que
conocen como comunicarse directamente con el hardware.
El núcleo o micronucleo de Windows es el enlace entre el kernel y el
procesador, es el intérprete de los procesos que se efectúan por los interesados
ya sea que los realicen en modo usuario o en modo kernel, a los cuales el
núcleo otorga prioridades de ejecución.
El núcleo de linux es de código abierto, esto nos da la pauta para decir que
núcleo y kernel son estados diferenciados del sistema operativo linux. Mientras
que en el núcleo se escriben nuevas líneas de código para adaptarse a las
necesidades de los usuarios, en el kernel se realizan las rutinas de ejecución de
programas y control de procesos.
3.- PROCESOS EN LINUX
Creación de procesos: fork y clone. A la hora de crear procesos linux provee de
dos funciones para dicho cometido, la función clone() y la función fork(). Ambas
crean un nuevo proceso a partir del proceso padre pero de una manera distinta.
Cuando utilizamos la llamada al sistema fork, el proceso hijo creado es una
copia exacta del padre (salvo por el PID y la memoria que ocupa). Al proceso
hijo se le facilita una copia de las variables del proceso padre y de los
descriptores de fichero. Es importante destacar que las variables del proceso
hijo son una copia de las del padre (no se refieren físicamente a la misma
variable), por lo que modificar una variable en uno de los procesos no se refleja
en el otro.
La llamada al sistema clone es mucho más genérica y flexible que el fork, ya
que nos permite definir qué van a compartir los procesos padre e hijo. La tabla 2
resume las diferencias entre las llamadas al sistema fork y clone. Las llamadas
al sistema fork y clone tienen la misma funcionalidad, pero distintas
características:
2
3. MAESTRIA EN SISTEMAS COMPUTACIONALES
SISTEMAS OPERATIVOS
FORK: En el momento de la llamada a fork el proceso hijo:
Es una copia exacta del padre excepto el PID.
Tiene las mismas variables y ficheros abiertos.
Las variables son independientes (padre e hijo tienen distintas
memorias).
Los ficheros son compartidos (heredan el descriptor).
CLONE: permite especificar qué queremos que compartan padre e hijo.
Espacio de direccionamiento
Información de control del sistema de archivos (file system)
Descriptores de archivos abiertos.
Gestores de señales o PID.
http://sopa.dis.ulpgc.es/ii-dso/leclinux/procesos/fork/LEC7_FORK.pdf
3
4. MAESTRIA EN SISTEMAS COMPUTACIONALES
SISTEMAS OPERATIVOS
GLOSARIO
1.- APLICACIÓN DE PRIMER PLANO
Aplicación con la cual se está trabajando. La aplicación de primer plano aparece en la
ventana activa. La comunicación entre el usuario y el shell sucede interactivamente, de
a una tarea a la vez. Por ejemplo, cuando el alumno introduce un comando en una
ventana de Terminal, el shell procesa el comando y muestra el resultado. El alumno
debe esperar hasta que el shell complete la tarea antes de requerir otra. Esto se
considera procesamiento en primer plano.
2.- KERNEL
Es un programa informático que gestiona la entrada /
salida de las solicitudes de los programas y las traduce
en procesamiento de datos instrucciones de la unidad
central de procesamiento y otros componentes
electrónicos de un ordenador.
El núcleo es una parte fundamental de un ordenador
moderno
sistema
operativo.
3.- NUCLEO
Un procesador es un dispositivo electrónico que incluye varios bloques entre
ellos se encuentran unos muy interesantes que se denominan núcleos los
cuales se encargan de ejecutar las instrucciones y pueden ser vistos como unos
micros en miniatura.
Los procesadores con varios núcleos han ganado popularidad a lo largo de los
años tanto que ahora es casi imposible encontrarte con alguno que no tenga
más de uno de ellos en su interior. Esto ha sido posible gracias a las mejoras de
las tecnologías de fabricación que ha permitido reducir
enormemente el tamaño de los micros dando más espacio
libre a los ingenieros pudiendo por tanto duplicar o incluso
triplicar sus bloques internos. De esta forma pasamos de
poder ejecutar una sola tarea a trabajar con varias al mismo
tiempo.
4.- MULTIPROGRAMACIÓN
Se denomina multiprogramación a una técnica por la que dos o más procesos
pueden alojarse en la memoria principal y ser ejecutados concurrentemente por
el procesador o CPU.
Con la multiprogramación, la ejecución de los procesos (o hilos) se va
solapando en el tiempo a tal velocidad, que causa la impresión de realizarse en
paralelo (simultáneamente). Se trata de un paralelismo simulado, dado
que el CPU sólo puede trabajar con un proceso cada vez (el proceso activo). De
ahí que, en rigor, se diga que el CPU ejecuta «concurrentemente» (no
simultáneamente) varios procesos; en un lapso de tiempo determinado, se
ejecutarán alternativamente partes de múltiples procesos cargados en la
memoria principal.
4
5. MAESTRIA EN SISTEMAS COMPUTACIONALES
SISTEMAS OPERATIVOS
5.- SPOOLING
El spooling (Simultaneous Peripheral Operations On-Line) se refiere al proceso
mediante el cual la computadora introduce trabajos en un buffer (un área
especial en memoria o en un disco), de manera que un dispositivo pueda
acceder a ellos cuando esté listo.
El spooling es útil en caso de dispositivos que acceden a los datos a distintas
velocidades. El buffer proporciona un lugar de espera donde los datos pueden
estar hasta que el dispositivo (generalmente más lento) los procesa. Esto
permite que la CPU pueda trabajar en otras tareas mientras que espera que el
dispositivo más lento acabe de procesar el trabajo.
La aplicación más común del spooling es la impresión. En este caso, los
documentos son cargados en un buffer, que habitualmente es un área en un
disco, y la impresora los saca de éste a su propia velocidad. El usuario puede
entonces realizar otras operaciones en el ordenador mientras la impresión tiene
lugar en segundo plano. El spooling permite también que los usuarios coloquen
varios trabajos de impresión en una cola de una vez, en lugar de esperar a que
cada uno acabe para enviar el siguiente.
6.- TIMESAHRING (Tiempo compartido)
En computación, el uso del tiempo compartido se refiere a compartir de
forma concurrente un recurso computacional (tiempo de ejecución en el CPU,
uso de la memoria, etc.) entre muchos usuarios por medio de las tecnologías
de multiprogramación y la inclusión de interrupciones de reloj por parte del
sistema operativo, permitiendo a este último acotar el tiempo de respuesta del
computador y limitar el uso del CPU por parte de un proceso dado.
7.- SHELL
Es el término usado en informática para referirse a un intérprete de comandos,
el cual consiste en la interfaz de usuario tradicional de los sistemas operativos
basados en Unix y similares como GNU/Linux.
Mediante las instrucciones que aporta el intérprete, el usuario puede
comunicarse con el núcleo o kernel y por extensión, ejecutar dichas órdenes,
así como herramientas que le permiten controlar el funcionamiento de la
computadora.
8.- APT
Advanced Packaging Tool (Herramienta
Avanzada
de
Empaquetado),
abreviado APT, es un sistema de gestión de paquetes creado por el
proyecto Debian. APT simplifica en gran medida la instalación y eliminación de
programas en los sistemas GNU/Linux.
No existe un programa apt en sí mismo, sino que APT es una biblioteca de
funciones C++ que se emplea por varios programas de línea de comandos para
distribuir paquetes. En especial, apt-get y apt-cache.
APT fue rápidamente utilizado para funcionar con paquetes .deb, en los
sistemas Debian y distribuciones derivadas, pero desde entonces ha
sido modificado para trabajar con paquetes RPM, con la herramienta apt-rpm, y
para funcionar en otros sistemas operativos, como Mac OS X (Fink)
y OpenSolaris (distribución Nexenta OS).
5
6. MAESTRIA EN SISTEMAS COMPUTACIONALES
SISTEMAS OPERATIVOS
COMANDO PS (OPCIONES)
El comando ps (process status - estado del proceso) se utiliza para presentar una lista
de los procesos que se están ejecutando actualmente en el sistema. Esto se lleva a
cabo normalmente si un proceso está llevando demasiado tiempo o parece haberse
detenido, como lo indica una ventana de Terminal que no responde.
ps: el comando ps sin opciones muestra la PID, el TTY (terminal type - tipo de
terminal), TIME (CPU time - tiempo de la CPU), y CMD (comando que inició el
proceso) sólo para los procesos del alumno que se están ejecutando en el shell
actual.
ps -e: el comando ps con la opción -e (every - cada uno) muestra la PID, el TTY,
TIME, y CMD de todos los procesos que se están ejecutando en el sistema.
ps -f: el comando ps con la opción -f (full - completo) muestra un listado de toda
la información: UID, PID, PPID, C, STIME, TTY, TIME, y CMD. No obstante,
esto es sólo para aquellos procesos que se están ejecutando bajo el shell o
ventana de Terminal actuales.
ps -u: el comando ps con la opción -u (user ID - ID del usuario) muestra PID,
TTY TIME, y CMD de cada proceso que se está ejecutando en el sistema para
un usuario en particular
Ver todos los procesos en el sistema utilizando la sintaxis estándar:
ps -e
ps -ef
ps -eF
ps –ely
Imprimir un árbol de procesos:
ps -ejH
ps axjf
Obtener información de hilos:
ps -eLf
ps axms
Obtener información de seguridad:
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps –Em
Ver todos los procesos ejecutando como root (ID efectivo y real) en formato de
usuario:
ps -U root -u root u
Entre muchas opciones que tiene ps, es posible ordenar la salida de acuerdo a una
columna, para esto se debe utilizar la opción gnu larga "--sort", por ejemplo para
ordenar por tiempo de CPU (si deseamos determinar qué proceso ha utilizado más
CPU) seleccionamos el código "cputime", correspondiente a la columna TIME:
ps aux --sort cputime
6
7. MAESTRIA EN SISTEMAS COMPUTACIONALES
SISTEMAS OPERATIVOS
ANDREW S. TANENBAUM
SISTEMAS OPERATIVOS
s.o
FUNCIONES INDEPENDIENTES
ADMINSTRADORES DE
RECURSOS
MAQUINAS EXTENDIDAS O
VIRTUAL
La tarea del sistema operativo es
administrar con eficiencia las diferentes
partes del sistema
La tarea del sistema operativo es
proporcionar a los usuarios una
máquina virtual que sea más cómoda
de usar que la máquina real.
7