¿Cuáles son algunos recursos en línea útiles para aprender sobre los sistemas operativos?

Funciones del sistema operativo
El Sistema Operativo es responsable de las siguientes funciones.
1) planificador (tiempo asignado a los programas),
2) administrador de memoria (asignación de espacio a programas)
3) sincronizador (evitar conflictos para un recurso al mismo tiempo)
4) protección (evitar conflictos por memoria)

Curso CS
Una breve introducción a los sistemas operativos.
Introducción rápida a varios temas
Programación
Concurrencia y sincronización
Gestión de la memoria
Memoria virtual

Manos en tutoriales
Tutoriales de Desarrollo de SO

Programación de Algo
Básicamente utiliza el tiempo IO programando otra tarea
El cambio de un hilo a otro (A -> B) puede ocurrir cuando
a) A esta completa
b) A está bloqueado en IO
c) La interrupción del temporizador se adelanta a la fuerza

Cómo funciona el programador
Dentro del planificador de Linux

Sincronización
La sincronización es necesaria ya que el proceso necesita intercambiar información usando una región compartida en la memoria. Sin embargo, no se puede acceder a esta región compartida de ninguna manera. Necesitaban ser accedidos correctamente.
secuencia. Imagine que el saldo bancario se actualiza mediante dos procesos diferentes. Necesidad de coordinar el acceso entre hilos.
La parte del programa donde se accede a la memoria compartida se llama región crítica. Las regiones críticas deben ser accedidas en exclusión mutua.
1) No puede haber dos procesos simultáneamente en la misma región crítica
2) Ningún proceso que se ejecute fuera de la región crítica debe bloquear otro proceso
3) Ningún proceso debe esperar siempre en CS
4) No se pueden hacer suposiciones sobre la velocidad / número de CPU
Estos se denominan exclusión mutua, progreso, espera acotada, independencia de velocidad.

Aproximaciones a la exclusión mutua
algunos enfoques
a) Deshabilitar las interrupciones en la sección crítica
b) Bloquear variables
c) Alteración estricta
Todos estos no son satisfactorios … debido a la espera ocupada
así que usa el mecanismo de dormir y despertar. El proceso en lugar de la espera ocupada se pone en una cola. Esto lleva al concepto de semáforos.

Gestión de la memoria

La memoria se divide en Segmentos, por lo que compartir código / datos es fácil. La proteccion es posible
Si bien la segmentación es buena en el sentido de que proporciona flexibilidad para cargar programas en cualquier lugar de la memoria. Sin embargo, todavía sufre de fragmentación externa.
es decir, hay muchos agujeros en la memoria que no son lo suficientemente grandes para ser asignados a cualquier proceso
Para evitar esto, se introduce Paging. Con la paginación, toda la memoria se divide en páginas de tamaño fijo. Aunque no hay desperdicio debido a la fragmentación externa, puede haber desperdicio dentro de una página. Esto se llama fragmentación interna.
En principio es similar al almacenamiento en caché (totalmente asociativo). Las páginas a las que se hace referencia se cargan en la RAM, las demás se guardan en el disco (Demand Paging)
Ahora, lo que sucede, cuando no hay espacio en la RAM, una de las páginas debe ser desalojada. Esto lleva al concepto de algoritmos de reemplazo de página.
El método más sencillo es utilizar FIFO. La página que se cargó más temprano es desalojada. Pero, ¿qué pasa si esa página es la de acceso frecuente? Esta política no es buena. Belady mostró en FIFO, que aumentar el tamaño de la memoria no conduce necesariamente a la reducción de errores de página. Aunque esto ocurre en los casos excepcionales, no podemos aumentar la memoria y esperar que las fallas de la página se reduzcan (el anamol de Belady no ocurre en los algoritmos LIFO)

Sistema de archivos y operaciones de disco
estructura de puntero de inodo
Página en Odu
Programación de discos
Programación de discos

Sistemas Operativos – Resumen de Algoritmos

* Banquero. Algoritmo utilizado para evitar el interbloqueo.
* Reemplazo de la página. Selección de la página de la víctima en condiciones de poca memoria.
Algoritmos de programación de discos.
* Ascensor. Algoritmo de programación de discos que funciona como un ascensor.
* La búsqueda más corta primero. Algoritmo de programación de discos para reducir el tiempo de búsqueda.
Procesamiento de algoritmos de sincronización.
* Peterson. Permite que dos procesos compartan un recurso de un solo uso sin conflicto, usando la memoria compartida para la comunicación. Puede ser generalizado.
* El algoritmo de la panadería de Lamport. Mejore la robustez de múltiples procesos de manejo de subprocesos mediante la exclusión mutua.
* Dekker. Otro algoritmo de programación concurrente, como el de Peterson.
Algoritmos de programación
* Horario de round-robin. El algoritmo más simple, asigna segmentos de tiempo a cada proceso sin prioridad.
* El trabajo más corto siguiente (o primero). Ejecuta a continuación el proceso de espera con el menor tiempo de ejecución, no es preventivo.
* Tiempo restante más corto. Una versión de la siguiente programación de trabajo más corto que termina el proceso en ejecución antes de elegir otra tarea.

El material de Page en buffalo.edu parece ser bastante completo. Enlaces a conferencias, recitaciones y trabajos. Video y sonido de conferencias es de muy alta calidad. También está el texto en línea llamado 3 Piezas fáciles (Sistemas operativos: Tres piezas fáciles)

AVISO DE AFILIACIÓN: trabajo para Rackspace, la compañía cuyas ofertas de nube recomiendo a continuación.

Para mí, no hay nada mejor que aprender a través del uso práctico.

Si desea obtener información sobre, por ejemplo, Ubuntu Server 12, Centos 6.3 o incluso, deities-perdóname, Winders, no hay nada mejor que ejecutar el sistema operativo y explorarlo por ti mismo.

Con Rackspace Cloud, puede activar cualquier tipo de sistema operativo que desee (de su menú de ofertas populares, por supuesto, no es infinito) por tan solo $ 16.06 / mes.

En realidad, el precio es de $ 0.022 / hr. Por lo tanto, mientras no tenga los archivos que necesita almacenados en el servidor, puede eliminarlos y volver a crearlos al día siguiente.

En teoría, 20 veces al mes podría encender un nuevo servidor, usarlo durante una hora, luego destruirlo, y pagaría solo $ 0.44 ese mes. *

Detalles de precios:
http://www.rackspace.com/cloud/p

Ofertas de SO:
http://www.rackspace.com/cloud/p

TL; DR: por menos de 50 centavos por mes *, puedes tener 20 horas de entrenamiento práctico con varios sistemas operativos.

* No he probado esto, pero es mi comprensión de cómo funciona la facturación. Tendría que acordarse de eliminar las imágenes después de cada uso; de lo contrario, se le cobraría por el tiempo que hayan existido.

He escrito un artículo con el único propósito de que las personas se involucren en el desarrollo de sistemas operativos. Escribir un sistema operativo: Baby Steps se adentra en la teoría sobre cómo se inicia tu computadora y cómo imprimir algunos caracteres en la pantalla. Entra en qué herramientas usar y por qué son necesarias. El artículo también proporciona explicaciones paso a paso sobre qué código usa y por qué.

Estos cursos pueden ser de su interés:
https://www.coursera.org/course/… La interfaz de hardware / software
https://www.coursera.org/course/… Arquitectura de la computadora

  • Estoy muy contento de aprender en línea. Quiero que me den el horario de este curso.