sábado, 2 de abril de 2016
Teoría de Sistemas Operativos - Unidad 3 (LINUX)
LINUX
GNU/Linux es uno de los términos empleados para referirse a la combinación del núcleo o kernel libre similar a Unix denominado Linux con el sistema operativo GNU. Su desarrollo es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL (Licencia Pública General de GNU,) y otra serie de licencias libres.
A pesar de que "Linux" se denomina en la jerga cotidiana al sistema operativo, este es en realidad solo el Kernel (núcleo) del sistema. La verdadera denominación del sistema operativo es "GNU/Linux" debido a que el resto del sistema (la parte fundamental de la interacción entre el hardware y el usuario) se maneja con las herramientas del proyecto GNU (www.gnu.org) y con entornos de escritorio (como GNOME), que también forma parte del proyecto GNU aunque tuvo un origen independiente. Como el Proyecto GNU destaca, GNU es una distribución, usándose el término sistema operativo en el sentido empleado en el ecosistema Unix, lo que en cualquier caso significa que Linux es solo una pieza más dentro de GNU/Linux. Sin embargo, una parte significativa de la comunidad, así como muchos medios generales y especializados, prefieren utilizar el término Linux para referirse a la unión de ambos proyectos. Para más información consulte la sección "Denominación GNU/Linux" o el artículo "Controversia por la denominación GNU/Linux".
A las variantes de esta unión de programas y tecnologías, a las que se les adicionan diversos programas de aplicación de propósitos específicos o generales se las denomina distribuciones. Su objetivo consiste en ofrecer ediciones que cumplan con las necesidades de un determinado grupo de usuarios. Algunas de ellas son especialmente conocidas por su uso en servidores y supercomputadoras. donde tiene la cuota más importante del mercado. Según un informe de IDC, GNU/Linux es utilizado por el 78% de los principales 500 servidores del mundo, otro informe le da una cuota de mercado de 89% en los 500 mayores supercomputadores. Con menor cuota de mercado el sistema GNU/Linux también es usado en el segmento de las computadoras de escritorio, portátiles, computadoras de bolsillo, teléfonos móviles, sistemas embebidos, videoconsolas y otros dispositivos.
(para mayor referencia respecto a LINUX, lea AQUI)
Historia
Richard Matthew Stallman, Fundador del Movimiento del software libre, de la FSF y del Proyecto GNU.
Linus Torvalds, creador del núcleo Linux.
Artículos principales: Historia de Linux e Historia del proyecto GNU.
El proyecto GNU, que se inició en 1983 por Richard Stallman, tiene como objetivo el desarrollo de un sistema operativo completo similar a Unix y compuesto enteramente de software libre. La historia del núcleo Linux está fuertemente vinculada a la del proyecto GNU. En 1991 Linus Torvalds empezó a trabajar en un reemplazo no comercial para MINIX que más adelante acabaría siendo Linux.
Cuando Torvalds presentó la primera versión de Linux en 1992, el proyecto GNU ya había producido varias de las herramientas fundamentales para el manejo del sistema operativo, incluyendo un intérprete de comandos, una biblioteca C y un compilador, pero como el proyecto contaba con una infraestructura para crear su propio núcleo (o kernel), el llamado Hurd, y este aún no era lo suficientemente maduro para usarse, se optó por utilizar Linux para poder continuar desarrollando el proyecto GNU, siguiendo la tradicional filosofía de cooperación entre desarrolladores. El día que se estime que Hurd es suficientemente maduro y estable, será destinado a reemplazar a Linux.
De este modo, el núcleo creado por Linus Torvalds, quien se encontraba por entonces estudiando Ingeniería Informática en la Universidad de Helsinki, llenó el "espacio" final que quedaba en el sistema operativo de GNU.
(referencia: AQUI)
Distribuciones LINUX
Para referencia y comentarios respecto a cuál distribución de LINUX utilizar, vea AQUI.
Instalación y configuración LINUX en arquitectura INTEL
(para mejor referencia respecto a cómo lograrlo, vea AQUI, AQUI y AQUI.
Instalación de LINUX-UBUNTU desde un CD/DVD (20 imágenes)
1.-
2.-
3.-
4.-
5.-
6.-
7.-
8.-
9.-
10.-
11.-
12.-
13.-
14.-
15.-
16.-
17.-
18.-
19.-
20.-
Arbol de directorios LINUX
Inicio-Cierre de sesión en LINUX
Para iniciar una sesión
En la pantalla de inicio, haga clic en el icono Sesión. Elija el escritorio de GNOME en la lista de entornos de escritorio disponibles.
Introduzca el nombre de usuario en el campo Nombre de usuario y, a continuación, pulse Intro.
Introduzca la contraseña en el campo Contraseña y, a continuación, pulse Intro.
Si el usuario y la contraseña son válidos, el gestor iniciará la sesión. Si ésta fuera la primera vez que se inicia sesión, se iniciará una sesión nueva. Si ya se inició una sesión con anterioridad, el administrador de sesiones restaurará la sesión anterior, si guardó los valores de la sesión anterior cuando la terminó.
Para cerrar o reiniciar el sistema antes de iniciar la sesión, haga clic en el icono Sistema de la pantalla de inicio. Se mostrará un cuadro de diálogo. Seleccione la opción que desee y haga clic en Aceptar.
Para iniciar una sesión de trabajo en un idioma diferente
Para iniciar sesión en un idioma diferente:
En la pantalla de inicio, haga clic en el icono Idioma. Seleccione el idioma de la lista de idiomas disponibles.
Introduzca el nombre de usuario en el campo Nombre de usuario y, a continuación, pulse Intro.
Introduzca la contraseña en el campo Contraseña y, a continuación, pulse Intro.
Cierre de sesion
Para cerrar las conexiones abiertas, lo primero que tenemos que hacer es un top o wdesde nuestra consola SSH para ver que procesos y usuarios están abiertos en el sistema.
Por ejemplo con el comando w podemos ver las sesiones de otros usuarios abiertas en el sistema.
El comando top nos mostrará entre otras cosas los procesos abiertos en el sistema (para ordenarlos por uso de memoria presionaremos control+m y para salir del topcontrol+c).
Si nos interesa el cerrar estas conexiones y tener únicamente la nuestra por ejemplo, haremos lo siguiente:
Ejecutaremos el comando ps -fea en el terminal y veremos todo todos los procesos abiertos. Buscamos el que nos interese (en conexiones de usuarios abiertas suele serpts/N siendo N un número, suelen ser 0,1…). Nos quedamos con su PID y a continuación ejecutaremos el comando: kill PID, siendo PID el número del proceso que queremos cerrar o matar. En el caso que no permita matar el proceso ejecutaremos: Kill -9 PID, siendo PID el número de proceso a cerrar.
(referencia AQUI)
Administración de usuarios en LINUX
Linux es un sistema multiusuario, por lo tanto, la tarea de añadir, modificar, eliminar y en general administrar usuarios se convierte en algo no solo rutinario, sino importante, además de ser un elemento de seguridad que mal administrado o tomado a la ligera, puede convertirse en un enorme hoyo de seguridad. En este manual aprenderás todo lo necesario para administrar completamente tus usuarios en GNU/Linux.
Tipos de usuarios
Los usuarios en Unix/Linux se identifican por un número único de usuario, User ID, UID. Y pertenecen a un grupo principal de usuario, identificado también por un número único de grupo, Group ID, GID. El usuario puede pertenecer a más grupos además del principal.
Aunque sujeto a cierta polémica, es posible identificar tres tipos de usuarios en Linux:
Usuario root
También llamado superusuario o administrador.
Su UID (User ID) es 0 (cero).
Es la única cuenta de usuario con privilegios sobre todo el sistema.
Acceso total a todos los archivos y directorios con independencia de propietarios y permisos.
Controla la administración de cuentas de usuarios.
Ejecuta tareas de mantenimiento del sistema.
Puede detener el sistema.
Instala software en el sistema.
Puede modificar o reconfigurar el kernel, controladores, etc.
Usuarios especiales
Ejemplos: bin, daemon, adm, lp, sync, shutdown, mail, operator, squid, apache, etc.
Se les llama también cuentas del sistema.
No tiene todos los privilegios del usuario root, pero dependiendo de la cuenta asumen distintos privilegios de root.
Lo anterior para proteger al sistema de posibles formas de vulnerar la seguridad.
No tienen contraseñas pues son cuentas que no están diseñadas para iniciar sesiones con ellas.
También se les conoce como cuentas de "no inicio de sesión" (nologin).
Se crean (generalmente) automáticamente al momento de la instalación de Linux o de la aplicación.
Generalmente se les asigna un UID entre 1 y 100 (definifo en /etc/login.defs)
Usuarios normales
Se usan para usuarios individuales.
Cada usuario dispone de un directorio de trabajo, ubicado generalmente en /home.
Cada usuario puede personalizar su entorno de trabajo.
Tienen solo privilegios completos en su directorio de trabajo o HOME.
Por seguridad, es siempre mejor trabajar como un usuario normal en vez del usuario root, y cuando se requiera hacer uso de comandos solo de root, utilizar el comando su.
En las distros actuales de Linux se les asigna generalmente un UID superior a 500.
(referencia AQUI)
SUPER USUARIO en LINUX
Una de las principales características de Linux es la capa extra de seguridad que añade a su sistema, razón por la cual es el favorito para usarse en supercomputadoras y servidores de todo el mundo. Si eres usuario de Linux ya te habrás dado cuenta que para realizar algunas tareas administrativas siempre se requiere ingresar una contraseña, pues bueno, esta es la capa extra de seguridad de la que hablábamos.
La cuenta de superusuario (root) es la cuenta con los permisos más elevados en sistemas Unix.
La cuenta root o de superusuario es la cuenta con los permisos más elevados; similar al Administrador en Windows. Este usuario tiene permisos de lectura, escritura y ejecución de cualquier aplicación del sistema (acceso administrativo en general); a diferencia de los usuarios normales que tienen acceso limitado a ciertas tareas por razones obvias de seguridad.
(referencia AQUI)
(otra referencia AQUI)
Principales ficheros/directorios de configuración LINUX
Permisos de los archivos
En Linux, todo archivo y directorio tiene tres niveles de permisos de acceso: los que se aplican al propietario del archivo, los que se aplican al grupo que tiene el archivo y los que se aplican a todos los usuarios del sistema. Podemos ver los permisos cuando listamos un directorio con ls -l:
$> ls -l
-rwxrwxr-- 1 sergio ventas 9090 sep 9 14:10 presentacion
-rw-rw-r-- 1 sergio sergio 2825990 sep 7 16:36 reporte1
drwxr-xr-x 2 sergio sergio 4096 ago 27 11:41 videos
Veamos por partes el listado, tomando como ejemplo la primera línea. La primera columna (-rwxrwxr--) es el tipo de archivo y sus permisos, la siguiente columna (1) es el número de enlaces al archivo, la tercera columna (sergio) representa al propietario del archivo, la cuarta columna (ventas) representa al grupo al que pertence al archivo y las siguientes son el tamaño, la fecha y hora de última modificación y por último el nombre delarchivo o directorio.
El primer caracter al extremo izquierdo, representa el tipo de archivo, los posibles valores para esta posición son los siguientes:
- un guión representa un archivo comun (de texto, html, mp3, jpg, etc.)
d representa un directorio
l link, es decir un enlace o acceso directo
b binario, un archivo generalmente ejecutable
Los siguientes 9 restantes, representan los permisos del archivo y deben verse en grupos de 3.
Los tres primeros representan los permisos para el propietario del archivo. Los tres siguientes son los permisos para el grupo del archivo y los tres últimos son los permisos para el resto del mundo o otros.
rwx rwx rwx
usuario grupo otros
En cuanto a las letras, su significado son los siguientes:
r read - lectura
w write - escritura (en archivos: permiso de modificar, en directorios: permiso de crear archivos en el dir.)
x execution - ejecución
Las nueve posiciones de permisos son en realidad un bit que o esta encendido (mostrado con su letra correspondiente) o esta apagado (mostrado con un guión -), asi que, por ejemplo, permisos como rwxrw-r--, indicaría que los permisos del propietario (rwx) puede leer, escribir y ejecutar el archivo, el grupo (o sea los usuarios que esten en mismo grupo del archivo) (rw-) podrá leer y escribir pero no ejecutar el archivo, y cualquier otro usuario del sistema (r--), solo podrá leer el archivo, ya que los otros dos bits de lectura y ejecucción no se encuentran encendidos o activados.
Permisos en formato numérico octal
La cambinación de valores de cada grupo de los usuarios forma un número octal, el bit x es 20 es decir 1, el bit w es 21 es decir 2, el bit r es 22 es decir 4, tenemos entonces:
r = 4
w = 2
x = 1
La combinación de bits encendidos o apagados en cada grupo da ocho posibles combinaciones de valores, es decir la suma de los bits encendidos:
- - - = 0 no se tiene ningún permiso
- - x = 1 solo permiso de ejecución
- w - = 2 solo permiso de escritura
- w x = 3 permisos de escritura y ejecución
r - - = 4 solo permiso de lectura
r - x = 5 permisos de lectura y ejecución
r w - = 6 permisos de lectura y escritura
r w x = 7 todos los permisos establecidos, lectura, escritura y ejecución
(referencia AQUI)
Comandos LINUX
Teoría de Sistemas Operativos - Unidad 2 (UNIX)
INTRODUCCIÓN A UNIX
UNIX es un sistema operativo, es decir, es una colección de programas que ejecutan otros programas en una computadora. UNIX nació en los Laboratorios Bell de AT&T en 1969, desarrollado por Ken Thompson y Dennis Ritchie (también creador del lenguaje de programación C). UNIX ofrecía solo una serie de pequeños programas, tan poco como fuese posible con respecto a sus predecesores, y tal vez esperando que la gente querría unir todos esos programas.
El sistema provee un serie de herramientas, cada una realiza una función limitada y bien definida, utiliza un sistema de archivos unificado como medio de comunicación, y un lenguaje de comandos llamado “shell” que permite combinar esas herramientas para realizar acciones complejas.
(referencia AQUI y AQUI)
Introducción al shell
El intérprete de comandos es la interfaz entre el usuario y el sistema operativo, por este motivo se le da el nombre "shell", que en castellano significa "caparazón".
El shell es un intérprete de comandos entre el SO (sistema operativo) y el usuario
Por lo tanto, el shell actúa como un intermediario entre el sistema operativo y el usuario utilizando líneas de comando introducidas por dicho usuario. Su función consiste en la lectura de la línea de comandos, la interpretación de su significado, la ejecución del comando y luego la devolución del resultado a través de las salidas.
El shell es un archivo ejecutable que debe interpretar los comandos, transmitirlos al sistema y devolver el resultado. Existen muchos tipos de shell: Los más comunes son: sh (llamado "Bourne shell"), bash ("Bourne again shell"), csh ("C Shell"), Tcsh ("Tenex C shell"), ksh ("Korn shell"), y zsh ("Zero shell"). Generalmente, sus nombres coinciden con el nombre del ejecutable.
Cada usuario tiene un shell predeterminado, que se activará al abrirse el aviso del comando. El shell predeterminado se especifica en el archivo de configuración /etc/passwd, en el último campo de la línea que corresponde al usuario. Es posible cambiar el shell durante una sesión; para hacerlo, sólo se deberá ejecutar el archivo ejecutable correspondiente.
(referencia AQUI y https://es.wikipedia.org/wiki/Shell_de_Unix)
Sistemas de archivos en UNIX
Unix File System (UFS) es un sistema de archivos utilizado por varios sistemas operativos UNIX y POSIX. Es un derivado del Berkeley Fast File System (FFS), el cual es desarrollado desde FS UNIX (este último desarrollado en los Laboratorios Bell).
Casi todos los derivativos de BSD incluyendo a FreeBSD, NetBSD, OpenBSD, NeXTStep, y Solaris Operating Environment|Solaris utilizan una variante de UFS. En Mac OS X está disponible como una alternativa al HFS. En Linux, existe soporte parcial al sistema de archivos UFS, de solo lectura, y utiliza sistema de archivos nativo de tipo ext3, con un diseño inspirado en UFS.
Un sistema de archivos UFS se compone de las siguientes partes:
- unos pocos bloques al inicio de la partición reservados para bootstrap (el cual debe ser inicializado separadamente del sistema de archivos).
- un superbloque que contiene un número mágico (del inglés magic number) identificando esto como un UFS, y algunos otros números vitales describiendo la geometría y parámetros de puesta a punto del comportamiento.
- una colección de grupos de cilindros. Cada grupo de cilindros tiene estos componentes:
- un respaldo del superbloque.
- una cabecera de cilindro, con estadísticas, lista de espacio libre, etc. acerca de este bloque de cilindros, similar a los que se encuentran en el superbloque.
- un número de inodos, cada cual conteniendo los atributos del archivo.
- un número de bloques de datos.
Los inodos son numerados secuencialmente. Los primeros inodos están reservados por razones históricas, seguidos por los inodos del directorio raíz.
Los archivos de directorio contienen sólo la lista de archivos en el directorio y el inodo asociado para cada archivo. Todos los metadatos (metadata) son mantenidos en el inodo.
(referencia AQUI)
¿Se puede tener más de un sistema operativo en el equipo (arranque múltiple)?
Se aplica Windows 7
Si el disco duro del equipo tiene suficiente espacio en disco disponible, puede instalar más de un sistema operativo y elegir cuál desea usar al iniciar el equipo. Esto se denomina configuración de arranque múltiple o arranque dual y requiere particiones en el disco duro.
(referencia AQUI)
Para referencia sobre cómo instalar UNIX en arquitectura INTEL o similar, lea AQUI, AQUI
AQUI.
Para instalar varios S. O. en un mismo equipo, vea AQUI
Otra referencia para instalar varios S. O. en un mismo equipo está AQUI.
Teoría de Sistemas Operativos - Unidad 1 (Fundamentos Teóricos)
Fundamentos Teóricos
Definición de S. O.
Un sistema operativo (SO o, frecuentemente, OS —del inglés Operating System—) es un programa o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él se ejecute en espacio de usuario)
(para mejor referencia, click AQUÍ)
Generaciones de S. O.
Clasificacion de S. O.
Administración de tareas
Monotarea: Solamente permite ejecutar un proceso (aparte de los procesos del propio SO) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción.
Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de SO normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente.
Administración de usuarios
Monousuario: Sólo permite ejecutar los programas de un usuario al mismo tiempo.
Multiusuario: Permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario.
Manejo de recursos
Centralizado: Permite usar los recursos de una sola computadora.
Distribuido: Permite utilizar los recursos (memoria, CPU, disco, periféricos...) de más de una computadora al mismo tiempo.
S. O. como Máquina Extendida
Definición de Proceso
Un proceso puede informalmente entenderse como un programa en ejecución. Formalmente un proceso es "Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados".1
Para entender lo que es un proceso y la diferencia entre un programa y un proceso, A. S. Tanenbaum propone la analogía "Un científico computacional con mente culinaria hornea un pastel de cumpleaños para su hija; tiene la receta para un pastel de cumpleaños y una cocina bien equipada con todos los ingredientes necesarios, harina, huevo, azúcar, leche, etcétera." Situando cada parte de la analogía se puede decir que la receta representa el programa (el algoritmo), el científico computacional es el procesador y los ingredientes son las entradas del programa. El proceso es la actividad que consiste en que el científico computacional vaya leyendo la receta, obteniendo los ingredientes y horneando el pastel.
Procesos concurrentes o Concurrencia de procesos
La concurrencia de procesos se refiere a las situaciones en las que dos o más procesos puedan coincidir en el acceso a un recurso compartido o, dicho de otra forma, que requieran coordinarse en su ejecución. Para evitar dicha coincidencia, el sistema operativo ofrece mecanismos de arbitraje que permiten coordinar la ejecución de los procesos.
(información extra AQUÍ)
Procesamiento Paralelo
La computación paralela es una forma de cómputo en la que muchas instrucciones se ejecutan simultáneamente, operando sobre el principio de que problemas grandes, a menudo se pueden dividir en unos más pequeños, que luego son resueltos simultáneamente (en paralelo). Hay varias formas diferentes de computación paralela: paralelismo a nivel de bit, paralelismo a nivel de instrucción, paralelismo de datos y paralelismo de tareas. El paralelismo se ha empleado durante muchos años, sobre todo en la computación de altas prestaciones, pero el interés en ella ha crecido últimamente debido a las limitaciones físicas que impiden el aumento de la frecuencia. Como el consumo de energía —y por consiguiente la generación de calor— de las computadoras constituye una preocupación en los últimos años, la computación en paralelo se ha convertido en el paradigma dominante en la arquitectura de computadores, principalmente en forma de procesadores multinúcleo.
(Referencia AQUI)
Procesamiento Semáforo
Un semáforo es una variable especial (o tipo abstracto de datos) que constituye el método clásico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del sistema o variables del código fuente) en un entorno de multiprocesamiento (en el que se ejecutarán varios procesos concurrentemente). Fueron inventados por Edsger Dijkstra en 1965 y se usaron por primera vez en el sistema operativo THEOS
Procesamiento monitor
El proceso monitorio es un procedimiento especial que tiene por objeto la resolución rápida de conflictos jurídicos en los que no existe contradicción. Es un procedimiento rápido y sencillo cuya finalidad es conceder cuanto antes al demandante un título ejecutivo en aquellos juicios en los que el demandado no se opone formalmente a la demanda. Nació para combatir los problemas de impagados que se producen en un elevado porcentaje de transacciones comerciales. Resulta especialmente útil para los pequeños y medianos empresarios, así como para todos los profesionales que necesitan disponer de un mecanismo rápido y sencillo para el cobro de sus deudas. Asimismo, resulta muy práctico para el cobro a los propietarios morosos de sus deudas con la comunidad de que forman parte. Una ventaja añadida de este tipo de procedimiento es que la petición inicial que se dirige al Juzgado no requiere la intervención de abogado ni procurador, lo que redunda en un ahorro de costes para el acreedor
Interbloqueo
En sistemas operativos, el bloqueo mutuo (también conocido como interbloqueo, traba mortal, deadlock, abrazo mortal) es el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos. A diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los interbloqueos.
Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o más procesos. En la vida real, un ejemplo puede ser el de dos niños que intentan jugar al arco y flecha, uno toma el arco, el otro la flecha. Ninguno puede jugar hasta que alguno libere lo que tomó.
(referencia AQUI)
Administración del Procesador
El administrador del procesador está compuesto por dos sub-administradores. Se conocen como el planificador de trabajos y el planificador de procesos.
Cada trabajo o programa pasa a través de una jerarquía de administradores. El primero que encuentra es el planificador de trabajos, también se conoce como planificador de alto nivel. Este sub-administrador sólo se ocupa de elegir los trabajos de una cola de trabajos que llegan y colocarlas en la cola de procesos con base en las características de cada uno. Su meta es mantener ocupada la mayor parte de los componentes del sistema de la computadora la mayor parte del tiempo.
Después que el planificador de trabajos pone un trabajo en la cola de listo, el planificador de procesos se hace cargo. Define qué trabajos tendrán derecho al CPU, cuándo y cuánto tiempo. También decide cuándo debe interrumpirse el procesamiento, determina a qué colas se debe pasar el trabajo durante su ejecución y reconoce cuándo ha concluido un trabajo y ya no hay necesidad de seguir procesándolo. Este sub-administrador es un planificador de bajo nivel que asigna el CPU para ejecutar los procesos de los trabajos que el planificador de trabajos ha colocado en la cola de listo.
En un entorno muy interactivo existe un tercer nivel del administrador del procesador, conocido como planificador de nivel medio. En algunos casos, en especial cuando el sistema está sobrecargado, el planificador de nivel medio encuentra ventajoso retirar trabajos activos de la memoria para reducir el grado de multiprogramación, y por lo tanto, permitir que los trabajos se completen más aprisa. Este sub-administrador controla los trabajos que se intercambian hacia afuera y de regreso.
(referencia AQUI)
Administración de Memoria
La gestión de memoria o administración de memoria es el acto de gestionar la memoria de un dispositivo informático. El proceso de asignación de memoria a los programas que la solicitan.1 La gestión de la memoria principal de una computadora es una tarea de suma importancia para el funcionamiento de la misma.
Los sistemas de memoria virtual separan las direcciones de memoria utilizadas por un proceso de las direcciones físicas reales, permitiendo la separación de procesos e incrementando la cantidad efectiva de memoria de acceso aleatorio utilizando la paginación. La calidad de la gestión de la memoria es crucial para las prestaciones del sistema.
El recolector de basura es la asignación y liberación automática de los recursos de memoria para un programa. La implementación suele ser a nivel del lenguaje de programación en contraposición a la gestión manual de memoria, que asigna y libera los recursos de memoria de una computadora de forma explícita.
La administración de memoria se refiere a los distintos métodos y operaciones que se encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche de la mejor manera posible el espacio disponible.
Para poder lograrlo, la operación principal que realiza es trasladar la información que deberá ser ejecutada por la unidad central de procesamiento o procesador, a la memoria principal. Actualmente esta administración se conoce como memoria virtual, porque no es la memoria física del procesador sino una memoria virtual que la representa. Entre algunas ventajas, esta memoria permite que el sistema cuente con una memoria más extensa teniendo la misma memoria real, por lo que esta se puede utilizar de manera más eficiente. Y por supuesto, que los programas que son utilizados no ocupen lugar innecesario.
(referencia AQUI)
ALMACENAMIENTO VIRTUAL
Definición:
La memoria virtual es una técnica de administración de la memoria real que permite al sistema operativo brindarle al software de usuario y a sí mismo un espacio de direcciones mayor que la memoria real o física.
La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la memoria caché (tanto dentro como fuera del CPU), la memoria física (generalmente en forma de RAM, donde la CPU puede escribir y leer directa y razonablemente rápido) y el disco duro que es mucho más lento, pero también más grande y barato.
(referencia AQUI)
Almacenamiento secundario
La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo.
Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y después las de baja.
Una vez realizada la tarea se tacha. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas.
Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal.
a) Planificar los discos.
b) Gestionar el espacio libre.
c) Asignar el almacenamiento.
d) Verificar que los datos se guarden en orden.
El almacenamiento secundario (memoria secundaria, memoria auxiliar o memoria externa) no 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.
No deben confundirse las "unidades o dispositivos de almacenamiento" con los "medios o soportes de almacenamiento", pues los primeros son los aparatos que leen o escriben los datos almacenados en los soportes.
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.
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".
En la actualidad para almacenar información se usan principalmente tres 'tecnologías':
Magnética (ej. disco duro, disquete, cintas magnéticas);
— Óptica (ej. CD, DVD, etc.)
Algunos dispositivos combinan ambas tecnologías, es decir, son dispositivos de almacenamiento híbridos, por ej., discos Zip.
— Memoria Flash (Tarjetas de Memorias Flash y Unidades de Estado sólido SSD).
(referencia AQUI)
Suscribirse a:
Comentarios (Atom)


































