Actividad 1-PRESENTACIÓN ANIMADA.pptxPreservación y conservación de los docum...
Os
1. INSTITUTO POLITÉCNICO NACIONAL
Escuela superior de ingeniería mecánica y eléctrica “Culhuacán”
INGENIERÍA EN COMPUTACIÓN
SISTEMAS OPERATIVOS
6CV1
RESENDIZ COLIN PILAR
MAGAÑA CASTILLO MIGUEL EDUARDO
ORTEGA CORTES LUIS JOEL
MARTINEZ CARRICOSA EDGAR JESUS
RUIZ GARCIA NATALY
2. OPENSUSE
OpenSUSE es el nombre de la distribución y proyecto libre
auspiciado por Novell para el desarrollo y mantenimiento de un
sistema operativo basado en Linux.
El origen de openSUSE se remonta al año 1992, cuando cuatro
entusiastas usuarios de Linux, lanzaron el proyecto bajo el nombre
de SuSE
SuSE fue comprado por Novell. a finales del 2003. Desde el
lanzamiento del proyecto openSUSE y la versión 10.0 en octubre
del 2005, la distribución a llegado a ser completamente libre en
todo sentido. El código de openSUSE ha llegado a ser el sistema
base de los productos comerciales de NOVELL, primeramente
llamado Novell Linux, pero renombrado más adelante como
Empresas de Escritorios SUSE Linux
CARACTERÍSTICAS
openSUSE comparte muchas características con SUSE Linux
Enterprise, ofreciendo por ejemplo:
• AppArmor: otorga permisos a aplicaciones basados en como
se ejecutan e interaccionan con el sistema.
• YaST: una aplicación que openSUSE utiliza para administrar el
sistema e instalar software.
• Xen: software de virtualización.
3. • KDE (extendido con algunas herramientas como Kickoff y
KNetworkManager) y GNOME
• Compiz: un escritorio 3D que corre sobre Xgl.
¿POR QUÉ OPENSUSE?
- esta a la vanguardia de la tecnología
*De las primeras distribuciones en incorporar software
como LibreOffice y tecnología systemd
-Gran soporte de la comunidad
*http://forums.opensuse.org foros en ingles
*http://www.forosuse.org/forosuse/ foros en español
-SuseStudio
SUSE Studio es un "dispositivo de software" o constructor de
software, simple y rápido, basado en una interfaz de usuario en
web, donde se puede recrear y armar, a medida desde cero, un
sistema operativo basado en SUSE Linux Enterprise ó openSUSE,
tanto para 32 bits, como para 64 bits.
Posee una unidad de prueba, (TestDrive, en inglés) que puede
arrancar, configurar y probar el dispositivo en una ventana de
navegador web (funiona correctamente en Firefox 2 y 3 en Linux,
Mac OS X y Windows; y en Safari 3 en Mac OS X) sin descargar, tras
haber configurado el sistema; el cual puede ser descargado
5. VERSIONES
La última versión estable disponible es la 13.1 y se puede descargar
de Internet mediante HTTP/FTP, BitTorrent o Metalink en varios
formatos para arquitecturas i386, x86-64 y ppc:
Una imagen ISO para grabar un DVD incluyendo tanto software
libre como con software no libre.
Una imagen ISO para grabar en CD con el entorno de escritorio KDE
y otra con Gnome.
Dos CDs add-on, uno con software no libre y otro con soporte
extendido para idiomas.
Una pequeña imagen ISO de unos 73 megas con un sistema básico
con el que se descargan los paquetes necesarios desde Internet
durante la instalación.
VERSIONES DE OPENSUSE
SUSE primero lanzaba las versiones personales y profesionales en
paquetes que incluían una extensa documentación impresa y
esperaba algunos meses antes de lanzar las versiones en sus
servidores.
Versiones publicadas de opensuse
1.0- Marzo de 1994
6. 2.0- 1994
3.0- 1995
4.0- 1996
5.0- Noviembre de 1997
6.0- Enero de 1999
7.0- Septiembre de 2000
8.0- Abril de 2002
9.0- Octubre de 2003
10.0- Septiembre de 2005
10.1- Mayo de 2006
10.2- Diciembre de 2006
10.3- Octubre de 2007
11.0- Junio de 2008
11.1- Diciembre de 2008
11.2- Noviembre de 2009
11.3- Julio de 2010
11.4- 10 de marzo de 2011
12.1-16 de noviembre de 2011
12.2-5 de Setiembre de 2012
12.3-13 de marzo del 2013.
7. 13.1-19 de noviembre de 2013
HERRAMIENTAS DE ADMINISTRACION
De las herramientas más importantes, OpenSUSE incluye:
YaST. Herramienta para administración y configuración del sistema
completo.
Xen, Virtual Box, K Virtual Machine, Qemu. Herramientas para
virtualización, administración y configuración de máquinas
virtuales.
Compiz Fusión. Manejador de los efectos 3D del escritorio.
Beagle. Herramienta de indexado y búsqueda de archivos en el
escritorio.
Banshee 1.0. Aplicación para manejo de audio y video de manera
sencilla, incluyendo radio por Internet. Organiza la librería de
música, maneja podcasts y dispositivos de música portátil, como
iPod.
Wine 1.0. La versión más reciente del emulador para aplicaciones
Windows corriendo sobre Linux.
8. AppArmor. : un sistema de protección de aplicaciones basado en
perfiles de ejecución de los mismos, revisando cómo se ejecutan e
interactúan con el sistema operativo.
Shorewall (Shoreline Firewall) es una robusta y
extensible herramienta de alto nivel para la configuración de muros
cortafuego. Shorewall solo necesita se le proporcionen algunos
datos en algunos ficheros de texto simple y éste creará las reglas de
cortafuegos correspondientes a través de iptables. Shorewall puede
permitir utilizar un sistema como muro cortafuegos dedicado,
sistema de múltiples funciones como puerta de enlace, dispositivo
de encaminamiento y servidor.
ESTRUCTURAS DE OPENSUSE
/home
Directorio personal de los usuarios. Aquí se encuentran todos los
datos propios, las configuraciones personales y todo aquello a lo
que sólo Ud. debe acceder. Generalmente todos pueden leer los
datos, pero sólo el usuario tiene derecho de modificarlos. Esta regla
es válida por defecto, pero puede cambiarla en cualquier momento.
/root
Directorio personal del administrador root. Esta carpeta es solo
visible para root.
/usr/
9. Aquí hay mucha cosa, ya que todos los programas graban bajo esta
carpeta documentos, información general, ayuda y otros datos
importantes. Las carpetas que se encuentran aquí son como los
directorios personales de los programas instalados. Los programas
utilizan la computadora del mismo modo que los usuarios; por eso
esta carpeta se llama usr.
/bin y /usr/bin (ficheros binarios)
Según su clasificación, hay diferentes directorios para programas, el
más importante de ellos es /usr/bin. Allí se encuentran muchas
utilidades, programas de sistema y comandos como p. ej. el que se
utiliza para copiar y mover datos, etc.
/sbin y /usr/sbin (binarios del sistema)
Estas carpetas forman la caja de herramientas del administrador de
sistema. Aquí se encuentran herramientas para dar de alta nuevos
usuarios o para forzar la terminación de programas. YaST, la
herramienta de configuración de SuSE, se encuentra también aquí.
/opt (optional)
En este directorio se encuentra software comercial o programas
muy grandes, que no pertenecen directamente al sistema; esto
puede ser p. ej. Netscape u Oracle.
/etc
Aquí se encuentran todos los ficheros de configuración para la
computadora. Estos ficheros contienen por ej. información sobre la
10. conexión a Internet, sobre el modo de arranque de la computadora
o sobre la configuración de la tarjeta gráfica. Aparte de éste hay
otros directorios con información sobre el sistema y los dispositivos
conectados:
/lib y /usr/lib (librerías), /var (datos variables), /proc (procesos),
/media (medios de almacenamiento removibles como disquete, CD,
etc.) /dev (todos los dispositivos conectados como impresora, disco
duro, teclados, etc.)
/boot
Ficheros y programas que se necesitan para el arranque de sistema,
p. ej. el kernel.
11. REQUERIMIENTOS DE SISTEMA
Procesador: Intel Pentium III o AMD Athlon a 500MHz, aunque se
recomienda un Intel Pentium 4 a 2.4 GHz, el equivalente en AMD o
superior. Todos los procesadores x86 de Intel y AMD con
instrucciones de 64-bit están dentro de los requisitos
recomendados, indistintamente de su velocidad de proceso o
número de núcleos.
Memoria RAM: Dependiendo del entorno a usar, pueden requerirse
como mínimo entre 512 MB a 1 GB de RAM, los requisitos
recomendados ascienden a 2 GB o más de RAM.
Disco duro: 3 GB de espacio libre para una instalación mínima, 5 GB
si se instala un entorno de escritorio (aunque se recomienda una
partición con más espacio).
Resolución de pantalla de 800x600 (aunque se recomienda
1024x768 o mayor), estando soportadas casi la totalidad de las
tarjetas gráficas e integradas, entre estas las mas populares del
mercado como AMD, NVIDIA, Intel y VIA.
JERARQUIA DE MEMORIA
Se conoce como jerarquía de memoria a la organización piramidal
de la memoria en niveles que tienen los ordenadores. Su objetivo
es conseguir el rendimiento de una memoria de gran velocidad al
12. coste de una memoria de baja velocidad, basándose en el principio
de cercanía de referencias.
Los puntos básicos relacionados con la memoria pueden resumirse
en:
• Cantidad
• Velocidad
• Coste
13. Por qué funciona la jerarquía ?
Principio de Localidad:
Los programas acceden a una porción relativamente pequeña del
espacio de direcciones en un determinado
lapso de tiempo.
Localidad temporal
• Si un ítem es referenciado en determinado momento, es común
que vuelva a ser referenciado poco tiempo después
Localidad Espacial
14. • Cuando un ítem es referenciado en determinado momento, es
común que los ítems con direcciones “cercanas“ también sea
accedidos poco tiempo después.
Como se maneja la jerarquía?
• Registros <-> Memoria
• por el compilador (programador)
• cache <-> memoria
• por el hardware
• memoria <-> discos
• por el hardware y el sistema operativo (memoria virtual)
• por el programador (archivos)
• MEMORIA SECUNDARIA:
•
almacenamiento secundario (memoria secundaria, memoria
auxiliar o memoria externa) es el conjunto de dispositivos
(aparatos) y medios (soportes) de almacenamiento, que
conforman el subsistema de memoria de una computadora,
junto a la memoria principal. También llamado periférico de
almacenamiento.
• La memoria secundaria es un tipo de almacenamiento masivo
y permanente (no volátil), a diferencia de la memoria RAM
que es volátil; pero posee mayor capacidad de memoria que
la memoria principal, aunque es más lenta que ésta.
15. El proceso de transferencia de datos a un equipo de cómputo
se le llama "procedimiento de lectura". El proceso de
transferencia de datos desde la computadora hacia el
almacenamiento se denomina "procedimiento de escritura".
MEMORIA REAL
La memoria real o principal es en donde son ejecutados los
programas y procesos de una computadora y es el espacio real que
existe en memoria para que se ejecuten los procesos. Por lo general
esta memoria es de mayor costo que la memoria secundaria, pero
el acceso a la información contenida en ella es de más rápido
acceso. Solo la memoria cache es más rápida que la principal, pero
su costo es a su vez mayor.
MEMORIA CACHE
En el caso de Linux, el Sistema Operativo utiliza toda la memoria
que no está siendo utilizada con el fin de poder acelerar las lecturas
en disco, lo cual es conocido como memoria caché, o buffer. Esta
memoria caché es liberada apenas se necesite memoria RAM para
algún otro programa, por lo que si bien, no es menoría libre, pasa a
serlo apenas se le necesite.
Debido a que la memoria es, desafortunadamente finita, y por lo
tanto, un recurso escaso, el "buffer cache" usualmente no puede
ser demasiado grande Cuando la "cache" se completa, los datos
que no han sido usados por un periodo de tiempo prolongado son
16. descartados y así la memoria es liberada para ser utilizada con
nuevos datos.
ASIGNACIÓN DE MEMORIA
La asignación de memoria consiste en el proceso de
asignar memoria para propósitos específicos, ya sea en tiempo de
compilación o de ejecución. Si es en tiempo de compilación
es estática, si es en tiempo de ejecución es dinámica y si son
variables locales a un grupo de sentencias se denomina automática
El kernel controla la asignación y sobre-asignación de memoria,
dejando que un programa reserve mas memoria de la que hay
disponible, esto no significa que en realidad esta cantidad de
memoria se vaya a usar.
La Asignación estática de memoria consiste en el proceso de
asignar memoria en tiempo de compilación antes de que el
programa asociado sea ejecutado, a diferencia de la asignación
dinámica o la automática donde la memoria se asigna a medida que
se necesita en tiempo de ejecución
Asignación automática de memoria
Las variables automáticas son variables locales a un bloque de
sentencias. Pueden ser asignadas automáticamente en la pila de
datos cuando se entra en el bloque de código . Cuando se sale del
bloque, las variables son automáticamente desasignadas.3 Las
variables automáticas tendrán un valor sin definir cuando son
17. declaradas, por tanto es buena práctica de programación
inicializarlas con un valor válido antes de usarlas.
Asignación dinámica de memoria
La asignación dinámica de la memoria es la asignación de
almacenamiento de memoria para utilización por parte de un
programa de computador durante el tiempo de ejecución de ese
programa.
CONTIGUA SIMPLE
En este sistema de administración la memoria aparece al programa
como una única extensión contigua de direcciones, compartida solo
por él y por el sistema operativo. Se hace necesario lograr en este
tipo de administración algún mecanismo de protección para el
sistema operativo que es residente
• Administración trivial
• No permite multiprogramación
19. PARTICION FIJA
En este esquema se establecen particiones fijas de la memoria de
una sola vez y para siempre (por hardware o por sistema
operativo), o en caso contrario esas particiones son cambiables en
tamaño mientras no haya trabajos ejecutándose (normalmente
esta tarea la realizará el operador desde consola).
Necesita guardar en una tabla de particiones:
– Dirección de comienzo de la partición
– Tamaño de la partición
22. PARTICIONADA VARIABLE
En este esquema las particiones se establecen según la longitud de
los
programas iniciales. Al cabo de un tiempo se produce mucha
fragmentación, por tanto existen diversas políticas para asignar una
23. partición de memoria libre. En principio sea cual fuere el
mecanismo de asignación de una partición libre se hace necesario
contar con la información de cuáles son esas particiones libres de
aparece una fragmentación de la memoria debido a que parte de la
partición no es utilizada por el programa.
26. PAGINACION
Para tener en cuenta arquitecturas de 64 bits, la paginación en
Linux tiene 3 niveles de tablas de páginas en lugar de 2
27. Linux gestiona la memoria central y las tablas de páginas utilizadas
para convertir las direcciones lineales (virtuales) en direcciones
físicas. Implementa una gestión de la memoria que es ampliamente
independiente del procesador sobre el que se ejecuta En realidad,
la gestión de la memoria implementada por Linux considera que
dispone de una tabla de páginas a tres niveles:
(1)directorio global de tablas de páginas (page global dirertory)
cuyas entradas contienen las direcciones de páginas que
contienen tablas intermedias
(2)directorio intermedio de tablas de páginas (page middle
directory) cuyas entradas contienen las direcciones de páginas
que contienen tablas de páginas
(3)las tablas de páginas (page table) cuyas entradas contienen
las direcciones de páginas de memoria que contienen el
código o los datos utilizados por el kernel o los procesos de
usuario.
SEGMENTACION
Se ha preferido la paginación sobre la segmentación porque: (1) La
gestión de memoria es más
simple cuando todos los procesos usan los mismos valores de
segmentos, es decir, tienen las mismas
direcciones lineales. (2) Un objetivo de Linux es la portabilidad, y
muchos procesadores soportan la
segmentación de forma muy limitada.
28. Para hacer uso de la segmentación, se programa adecuadamente la
GDT = Tabla de Descriptores Global.
Esta tabla es implementada por el array gdt_table referenciada por
la variable gdt, que se encuentra definido
en el archivo arch/i386/kernel/head.S.
Los segmentos que se definen se superponen en el espacio de
direcciones lineal. Como se emplean muy
pocos segmentos, solo es necesaria la GDT. La LDT no se usa por el
kernel salvo que lo requiera un
proceso, aunque existe una llamada al sistema que permite crear
sus propias LDTs.
Los segmentos empleados en Linux son los siguientes:
· Segmento de código del kernel.
· Base: 0x00000000, Límite (limit): 0xfffff,
· G = 1 (granularidad en páginas),
· S = 1 (Segmento normal de código o datos),
· Type = 0xa (Código, puede ser leído y ejecutado),
· DPL = 0 (Modo kernel para el nivel de privilegio del descriptor),
29. · D/B = 1 (Offset de 32 bits),
Segmento de datos del kernel:
· Base: 0x00000000, Límite (limit): 0xfffff,
· G = 1 (granularidad en páginas),
· S = 1 (Segmento normal de código o datos),
· Type = 0x2 (Datos, puede ser leído y escrito),
· DPL = 0 (Modo kernel),
· D/B = 1 (Offset de 32 bits),
· Idéntico al descriptor de segmento anterior salvo por el tipo, y se
define por la macro __KERNEL_DS.
Segmento de código de usuario:
· Base: 0x00000000, Límite: 0xfffff
· G = 1 (granularidad en páginas)
· S = 1 (Segmento normal de código o datos)
· Type = 0xa (Código, puede ser leído y ejecutado)
· DPL = 3 (Modo usuario)
· D/B = 1 (Offset de 32 bits)
· El descriptor de segmento se define por la macro __USER_CS.
30. Segmento de datos de usuario:
· Base: 0x00000000, Límite: 0xfffff,
· G = 1 (granularidad en páginas),
· S = 1 (Segmento normal de código o datos),
· Type = 0x2 (Datos, puede ser leído y escrito),
· DPL = 3 (Modo usuario),
· D/B = 1 (Offset de 32 bits),
· El descriptor de segmento se define por la macro __USER_DS.
PAGINACIÓN POR DEMANDA
Un sistema de paginación por demanda es similar a un sistema de
paginación con intercambios. Los procesos residen en memoria
secundaria (en el disco). Cuando queremos ejecutar un proceso, lo
metemos en memoria. Sin embargo, en vez de intercambiar todo el
proceso hacia la memoria, utilizamos un intercambiador perezoso.
Un intercambiador perezoso nunca reincorpora una página a
memoria a menos que se necesite. Como ahora consideramos un
proceso como una secuencia de páginas, en vez de un gran espacio
contiguo de direcciones, el término intercambio es técnicamente
incorrecto. Un intercambiador manipula procesos enteros,
mientras que un paginador trata con las páginas individualmente
de un proceso.
SEGMENTACION POR DEMANDA
31. Si no se dispone de hardware de paginacion, es posible
implementar memoria virtual con segmentacion bajo demanda
Para ello es necesario intercambio hardware de segmentacion que
indique si el segmento esta presente en memoria o no de manaera
que:
Se referencia un segmento que esta en memoria: se accede
normalmente
Se referencia un segmento que no esta en memoria: se produce
una excepción
Los algoritmos de reemplazo son similares a los de la paginacion
bajo demanda. Veamos como lo haca OS/2
El sistema mantenia una lista de los segmentos en memoria.
Periodicamente el sistema
Colocaba los segmentos accedidos la final de la lista
Limpiaba los bits de acceso
Cuando habia que reemplazar un segmento se reemplazaba, en
caso de ser necesario, el primero (o los primeros) de la lista: se
trata de una aproximancion a LRU pues la lista esta ordenada por
tiempo de acceso
SERVICIOS POXIS
POSIX es el acrónimo de Portable Operating System Interface;
la X viene de UNIX como seña de identidad de la API.
POSIX es el estándar de interfaz de sistemas operativos portables
de IEEE basado en el sistema operativo UNIX. Aunque UNIX era
32. prácticamente un estándar industrial, había bastantes diferencias
entre las distintas implementaciones de UNIX, lo que provocaba
que las aplicaciones no se pudieran transportar fácilmente entre
distintas plataformas UNIX.
El POSIX Se trata de un estándar que intenta asegurar la
portabilidad entre diferentes sistemas operativos. Dentro del
estándar se especifica el comportamiento de las expresiones
regulares y de las herramientas más comunes que las usan.
El POSIX es un grupo de estándares en evolución. Cada uno de los
estándares que lo componen cubre diferentes aspectos de los
sistemas operativos. Algunos de ellos ya han sido aprobados,
mientras que otros están aún en fase de desarrollo. Los estándares
POSIX se pueden agrupar en tres categorías diferentes:
PROCESOS
33. Los procesos son programas que se ejecutan en un momento dado.
Cuando usamos un sistema operativo de GNU/Linux como
OpenSuse por ejemplo (o cualquier otro, también dentro de
windows y mac puede aplicarse) existen una serie de procesos que
se están ejecutando constantemente y que son los que hacen al
sistema operativo utilizable.
37. • El sistema operativo consiste en un conjunto de programas
que permiten la manipulación de los recursos hardware del
sistema, así como su gestión.
• Cuando un programa se ejecuta, el intérprete de comandos
resuelve el nombre del programa, dicho nombre corresponde
normalmente a un archivo ejecutable cuya información está
contenida en un dispositivo de almacenamiento secundario.
Dicha información es volcada a la memoria, las direcciones
relativas son resueltas y se convierten en direcciones
absolutas, los registros almacenan los valores de las
direcciones de los diferentes segmentos del programa: pila,
datos, código, contador de programa, etc.
38. • El sistema operativo sigue ejecutándose junto con el
programa: sistemas monotarea y sistemas multitarea.
• Los procesos en GNU/Linux son organizados de forma
jerárquica, cada proceso es lanzado por un proceso padre y es
denominado proceso hijo. De está forma, todos los procesos
en GNU/Linux son hijos de init ya que este es el primer
proceso que se ejecuta al iniciar el ordenador y init es padre
39. de todos los procesos. Si se mata al proceso padre, también
desaparecerán los procesos hijos.
• Tipos de procesos
Básicamente hay dos: los procesos de usuario y los demonios:
• - Los procesos de usuario son los programas que utiliza el
usuario generalmente y se encuentran conectados a una
terminal. El programa aparecerá el pantalla y interactuara con
el usuario
• - Los demonios por contra, no están conectados a una
terminal, funcionan solos y no interactúan con el usuario.
41. Como pueden ver, los procesos están ordenados y se
presentan con 5 columnas (PID, TTY, STAT, TIME, COMAND),
cada columna tiene su significado:
- PID: Es la primera columna y indica el numero ID del proceso
en cuestión. Este numero es necesario para matar luego al
proceso, por ejemplo, dentro de los procesos que aparecen
en la imagen si quisiera matar al proceso bluetooth, con un
PID de 29 escribiría en terminal kill 29
- TTY: Esta columna muestra en que terminal se está
ejecutando el proceso, si aparece con un ? significa que es un
demonio (todos los procesos listados en la imagen son
demonios, para los más observadores se habrán dado cuenta
de que hay más procesos en ejecución, solo que no me entran
en una imagen)
42. • - STAT: Está columna muestra el estado del proceso
- TIME: Está columna muestra el tiempo que ha consumido el
proceso para ser lanzado, es decir, el tiempo que ha pasado
desde la ejecución de la orden del proceso hasta que el
proceso empezó a funcionar.
- COMMAND: Está columna muestra el comando que fue
necesario para invocar al proceso en cuestión
ADMINISTRACION BASICA DEL SISTEMA
• Realización de copias de seguridad.
• tar (tar cvfz output.tgz input…)
• dd (dd if=/dev/hda1 of=/home.hda1.bin)
• dd + gzip (dd if=/dev/hda1 | gzip > /home.hda1.bin.gz)
• Suite Simple Backup
https://help.ubuntu.com/community/BackupYourSystem/Simple
BackupSuite
43. • Monitorizar el sistema
• Recursos del sistema
• top • vmstat
• iostat • lsoft
• ps
• Uso del sistema de ficheros
• df • du
• Cuotas (quote)
• ‘Monitorizando’ a los usuarios
• who • w
• nice / renice
44. • Monitorizar el sistema
• Recursos del sistema
• top • vmstat
• iostat • lsoft
• ps
• Uso del sistema de ficheros
• df • du
• Cuotas (quote)
• ‘Monitorizando’ a los usuarios
• who • w
• nice / renice1
PRIORIDADES
45. • linux, como la mayoría de sistemas operativos modernos,
puede ejecutar múltiples procesos. Esto lo hace compartiendo
la CPU y otros recursos entre los procesos. Si un proceso
puede usar el 100% de la CPU, entonces otros procesos
podrían dejar de responder.
• Si usted ejecuta el comando top , su predeterminado es
mostrar procesos en orden decreciente de acuerdo a su uso
de CPU, como se muestra en el Listado 1. En el artículo
anterior, "Aprenda Linux 101: Cree, supervise y elimine
procesos," mostramos un script de un Reloj de Hombre Pobre,
el cual imprimía la hora en la consola cada 30 segundos y no
hacía nada el resto del tiempo. Si ejecutábamos ese proceso,
probablemente no llegaría a la lista de resultado desde top
porque el proceso para la mayoría del tiempo sin usar la CPU.
• Listado 1. Resultado típico de top en una estación de trabajo
Linux
• PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
COMMAND
• 11220 ian 20 0 555m 106m 27m S 8 2.7 36:06.16
firefox
• 7 root 15 -5 0 0 0 S 1 0.0 10:59.36 ksoftirqd/1
• 10849 ian 20 0 212m 15m 10m S 0 0.4 0:08.11
gnome-terminal
• 1 root 20 0 19584 1888 1196 S 0 0.0 0:00.83 init
• 2 root 15 -5 0 0 0 S 0 0.0 0:00.01 kthreadd
46. • 3 root RT -5 0 0 0 S 0 0.0 0:00.02 migration/0
•
Además del comando top usted también puede mostrar valores de
cortesía usando el comando ps . Usted puede personalizar el
resultado como vio en el artículo "Aprenda Linux 101: Cree,
supervise y elimine procesos," o simplemente puede usar la opción
-l para obtener un listado extenso. El resultado de ps -l se muestra
en el Listado 2. Así como con top, busque el valor de cortesía en la
columna NI .
• Listado 2. Usando para encontrar cortesía
• 4 root 15 -5 0 0 0 S 0 0.0 0:01.08 ksoftirqd/0
• 5 root RT -5 0 0 0 S 0 0.0 0:00.00 watchdog/0
• 6 root RT -5 0 0 0 S 0 0.0 0:00.03 migration/1
Cuando usted solo tiene una o un número limitado de CPUS,
necesita decidir cómo compartir esos recursos de CPU limitados
entre los diferentes procesos que compiten por ellos.
Generalmente esto se hace seleccionando un proceso para
ejecución y dejándolo ejecutar por un periodo corto(llamado una
rebanada de tiempo), o hasta que necesite esperar algún evento,
como que se complete una E/S.
• ian@attic4:~$ ps -l
• F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME
CMD
47. • 0 S 1000 26502 26501 0 80 0 - 5368 wait pts/4 00:00:00
bash
• 0 R 1000 27046 26502 0 80 0 - 1684 - pts/4 00:00:00
ps
• Cortesía predeterminada
Tal vez usted haya deducido del Listado 1 o del Listado 2 que la
cortesía predeterminada, por lo menos para los procesos
iniciados por usuarios regulares, es 0. Este es normalmente el
caso en los sistemas Linux actuales. Usted puede verificar el
valor de su shell y de sistema ejecutando el comando nice sin
parámetros, como se muestra en el Listado 3.
• ian@attic4:~$ nice
MULTITAREA Y MULTIPROCESO
48. Multitarea: La palabra multitarea describe la habilidad de ejecutar
varios programas al mismo tiempo. LINUX utiliza la llamada
multitarea preeventiva,la cual asegura que todos los programas
que se estan utilizando en un momento dado seran ejecutados,
siendo el sistema operativo el encargado de ceder tiempo de
microprocesador a cada programa
Multiusuario:Muchos usuarios usando la misma maquina al mismo
tiempo.
Multiplataforma: Las plataformas en las que en un principio se
puede utilizar Linux son 386-, 486-. Pentium, Pentium Pro, Pentium
II,Amiga y Atari, tambien existen versiones para su utilizacion en
otras plataformas, como amd64, Alpha, ARM, MIPS, PowerPC y
SPARC.
Multiprocesador: Soporte para sistemas con mas de un
procesador esta disponible para Intel, AMD y SPARC.
Funciona en modo protegido 386.