You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 10, 2020. It is now read-only.
Copy file name to clipboardexpand all lines: Planificacion.md
+47-30
Original file line number
Diff line number
Diff line change
@@ -1,67 +1,75 @@
1
1
---
2
2
lang: es
3
+
title: Sistemas Operativos
4
+
author: Facultad de Ingeniería, Universidad de Buenos Aires
5
+
date: Primer cuatrimestre de 2017
6
+
linkcolor: black
7
+
urlcolor: blue
8
+
links-as-notes: false
9
+
header-includes: |
10
+
\usepackage{draftwatermark}
11
+
\SetWatermarkText{\textsc{Borrador}}
12
+
\SetWatermarkColor[gray]{0.925}
3
13
---
4
14
5
-
# Objetivos #
6
-
7
-
**Objetivos generales**
8
-
9
-
- Conocer, estudiar y describir los objetivos, servicios, mecanismos y funciones de un sistema operativo moderno. Estos se dividen en 4 bloques fundamentales:
10
-
11
-
1. Kernel y procesos.
12
-
13
-
2. Administración de memoria.
15
+
# Resumen #
14
16
15
-
3. Concurrencia.
17
+
En la materia se estudia en detalle tres pilares fundamentales de los sistemas operativos:
16
18
17
-
4. Persistencia.
19
+
1._compartición_ de recursos (procesador y memoria)
18
20
19
-
- Obtener las habilidades necesarias para programar a nivel kernel mediante la ejercitación sobre un sistema operativo concreto.
21
+
2. acceso _concurrente_ (a recursos y datos)
20
22
21
-
- Conocer, estudiar y describir otros conceptos relacionados con los sistemas operativos modernos (seguridad, tolerancia a fallos, tiempo real y evaluación de performance, etc.)
23
+
3. almacenamiento _persistente_ (de datos de usuario)
22
24
23
-
- Conocer, utilizar e implementar las herramientas más comunes que proveen los sistemas operativos modernos.
25
+
así como las abstracciones y conceptos subyacentes.
24
26
27
+
En los trabajos prácticos se ejercita tanto la implementación de dichas abstracciones como su uso a través de una interfaz de programación estándar.
25
28
26
-
**Objetivos particulares**
27
29
28
-
- Conocer, estudiar y utilizar los algoritmos y estructuras de datos más utilizados en la contrucción de sistemas operativos modernos.
30
+
# Objetivos #
29
31
32
+
Los objetivos se entroncan en torno a la idea del sistema operativo como _proveedor de servicios;_ así:
30
33
31
-
-Conocer, comprender y aplicar las soluciones que normalmente se aplican a los problemas que se presentan en un sistema operativo moderno.
34
+
-Saber describir los servicios y funciones de un sistema operativo moderno.
32
35
36
+
- Conocer las abstracciones y detalles de implementación de dichos servicios, así como los algoritmos y estructuras asociados.
33
37
34
-
# Contenidos mímimos #
38
+
- Escribir programas que hagan uso de los servicios del sistema operativo a través de su interfaz de programación estándar.
35
39
36
-
Kernel y procesos. Administración de memoria. Concurrencia. Persistencia.
40
+
- Implementar, sobre el núcleo de un sistema operativo existente, uno o más de estos servicios.
37
41
38
42
39
-
# Programa sintético #
43
+
# Contenidos mínimos #
40
44
41
-
Núcleos (kernels) y procesos. La abstracción del núcleo (kernel). La interfase de programación. Administracion de memoria. Memoria real, memoria virtual y memoria caché. Aplicaciones de administración de memoria. Concurrencia y threads. Sincronización de acceso a objetos compartidos. Algoritmos de scheduling. Sistemas de archivos. Dispositivos de almacenamiento. Archivos y directorios.
45
+
Funciones del sistema operativo. Procesos: creación y planificación. Espacio de direcciones; manejo de asignaciones; paginación. Hilos de ejecución y primitivas de sincronización. Organización de un sistema de archivos.
42
46
43
47
44
-
# Programa Analítico #
48
+
# Programa analítico #
45
49
46
50
**Unidad 1**
47
51
48
-
Introducción. Qué es un Sistema Operativo. Criterios de Evaluación de un Sistema Operativo. Historia de los Sistemas Operativos. Tipos de Sistemas Operativos.
52
+
Sistemas operativos: propósito, funcionalidad y servicios. Historia breve y tipos. Separación de privilegios: ejecución del núcleo _(kernel)_ frente a código de usuario. Llamadas al kernel _(syscalls)_ como interfaz de acceso a servicios. Biblioteca del sistema y estándar POSIX.
49
53
50
54
**Unidad 2**
51
55
52
-
La abstracciòn del Kernel. El concepto de Proceso. La abstracción del Proceso. Estados de un Proceso. Estruturas de datos. Modo de Operación dual. Transferencia de control segura. Caso de estudio: Booteando un kernel de un sistema operativo. Caso de Estudio: Maquinas Virtuales.
56
+
Compartición de procesador y memoria: el proceso como unidad de virtualización. Creación de procesos: paso de un archivo ejecutable a una instancia de proceso. Datos y estados de un proceso. Salto entre ejecución privilegiada _(kernel-space)_ y ejecución en nombre de un ususario _(user-space)_. Salto entre procesos de usuario.
57
+
58
+
Caso de estudio y práctica: intérprete de comandos _(shell)_ en un entorno POSIX.
53
59
54
60
**Unidad 3**
55
61
56
-
El API de Procesos. Gestión de Procesos. Input/Output. Caso de Estudio: Implemención de un shell. Caso de Estudio: Comunicación Interproceso. Estructura de un sistema Operativo.
62
+
Espacios de direccionamiento y traducción de direcciones. Soporte hardware para traducción de direcciones. Paginación y TLB _(translation lookaside buffers)_. Caché, jerarquías de memoria y políticas de reemplazo.
63
+
64
+
Caso de estudio y práctica: manejador de memoria en espacio de usuario sobre la llamada al sistema _sbrk_.
57
65
58
66
**Unidad 4**
59
67
60
-
Memoria Física. La Abstracción del Espacio de Memoria. El API de Memoria. El Concepto de Espacio de Direcciones. Paginación. Algoritmos de Paginación. Segmentación. Administración de Espacio Libre de Memoria. Software address translation. Memoria Caché. El Concepto de Cache. Gestión de memoria Cache. Memoria Virtual VAX / VMS.
68
+
Planificación de procesos _(scheduling):_ orden de acceso al procesador. Estrategias básicas de planificación: _first-in first-out_ (FIFO), _shortest job first_ (SJF) y _shortest time-to-completion first_ (STCF); _round robin_ (RR) mediante tiempo de respuesta. Estrategias de repartición justas _(fair-share scheduling)_. Introducción a la planificación multi-procesador.
61
69
62
-
**Unidad 5**
70
+
Caso de estudio y práctica: _schedulers_ en Linux.
63
71
64
-
Introducción a la Planificación. Planificación Uniprocesador. Planificación Multiprocesador. Planificación Energy-aware. Planificación de Tiempo Real. Teoria de Colas. Caso de estudio.
- Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C.: _Operating Systems: Three Easy Pieces_, Arpaci-Dusseau Books (v0.91, 2015).
90
+
# Cronograma #
91
+
92
+
93
+
# Calendario de evaluaciones #
94
+
95
+
96
+
# Bibliografía #
97
+
98
+
- Anderson, T. y Dahlin, M.: _Operating Systems: Principles and Practice_ (2.ª ed.), Recursive Books (2014).
99
+
100
+
- Arpaci-Dusseau, R. H. y Arpaci-Dusseau, A. C.: _Operating Systems: Three Easy Pieces_ (v0.91), Arpaci-Dusseau Books (2015). [Disponible en línea en [ostep.org](http://ostep.org).]
0 commit comments