Skip to content
This repository was archived by the owner on Jan 10, 2020. It is now read-only.

Commit 11dcf7a

Browse files
committed
Cambios Dato.
1 parent 0bfd1af commit 11dcf7a

File tree

1 file changed

+47
-30
lines changed

1 file changed

+47
-30
lines changed

Planificacion.md

+47-30
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,75 @@
11
---
22
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}
313
---
414

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 #
1416

15-
3. Concurrencia.
17+
En la materia se estudia en detalle tres pilares fundamentales de los sistemas operativos:
1618

17-
4. Persistencia.
19+
1. _compartición_ de recursos (procesador y memoria)
1820

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)
2022

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)
2224

23-
- Conocer, utilizar e implementar las herramientas más comunes que proveen los sistemas operativos modernos.
25+
así como las abstracciones y conceptos subyacentes.
2426

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.
2528

26-
**Objetivos particulares**
2729

28-
- Conocer, estudiar y utilizar los algoritmos y estructuras de datos más utilizados en la contrucción de sistemas operativos modernos.
30+
# Objetivos #
2931

32+
Los objetivos se entroncan en torno a la idea del sistema operativo como _proveedor de servicios;_ así:
3033

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.
3235

36+
- Conocer las abstracciones y detalles de implementación de dichos servicios, así como los algoritmos y estructuras asociados.
3337

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.
3539

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.
3741

3842

39-
# Programa sintético #
43+
# Contenidos mínimos #
4044

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.
4246

4347

44-
# Programa Analítico #
48+
# Programa analítico #
4549

4650
**Unidad 1**
4751

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.
4953

5054
**Unidad 2**
5155

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.
5359

5460
**Unidad 3**
5561

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_.
5765

5866
**Unidad 4**
5967

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.
6169

62-
**Unidad 5**
70+
Caso de estudio y práctica: _schedulers_ en Linux.
6371

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.
72+
**Unidad 5**
6573

6674
**Unidad 6**
6775

@@ -78,9 +86,18 @@ Seguridad. Sistemas Distribuidos. Sistemas Operativos Móviles. Sistemas Operati
7886

7987
# Bibliografía #
8088

81-
- Anderson, Thomas; Dahlin, Michael: _Operating Systems: Principles and Practice_, Recursive Books (2.ª ed., 2012).
8289

83-
- 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).]
84101

85102

86103
# Régimen de cursada #

0 commit comments

Comments
 (0)