Primer Parcial Flashcards
Sistema Operativo
Programa que controla la ejecución de programas de aplicación y actúa como interfaz entre los programas y el hardware
Tres objetivos del sistema operativo
Conveniencia, eiciencia y habilidad de evolucionar
Conveniencia
Hace que la computadora sea más facil de usar
Eficiencia
Permite que los programas usen los recursos de manera eficiente
Habilidad de evolucionar
Se pueden añadir funciones sin interferir con el servicio
Modo usuario
Software de usuario
Librerias/utilidades
UI (GUI/shell)
Modo kernel
Sistema operativo
Servicios del SO
Desarrollo y ejecución de programas
Accesos a E/S, archivos y sistema
Deteccion y respuesta de errores
Estadísticas de uso
Como manejador de recursos
Maneja y administra recursos del ordenador
El software es ejecutado por el procesador
Renuncia al control y depende de que el procesador le regrese el control
Parte principal del so
El kernel, su núcleo
Funciones del kernel
Comunicacion hardware-aplicaxiones nivel usuario
Conreolar discos, memoria y tareas
Kernel de windows
Microsoft windows NT
Kernel de MAC os
X is not unix
Xnu
El SO debe Evolucionar porque
Se actualiza el hardware, hay nuevos servicios y hay que darle fixes
Proceso por lotes (batch preocessing)
Primer antecedente
Perforadores y lectores
Se daban programas en tarjetas perforadas a operadores
Función del sistema monitor o de control
Aisistir al operador en las cargas
Notificar resultados
Contar recursos en uso
Se mejoran implementando protecciones, se evitan loops infinitos por alarmas de tiempo
Esto provoca que se cree la gestión de recursos
Sistemas en lotes por dispositivos de carga (spool)
E/S que permite leer tarjetas y convertirlas en cinta magnética
Lancomputadora central carga la cinta, guarda los resultados en cinta que se puede leer o imprimir
Operacion simultanea de periféricos en linea
Sistemas multiprogramados
Maximizar el tiempo de uso efectivo del procesador ejecutando procesos simultáneos
Proteccion de recurosos para no sobreescribir, está en la MMU
Algunos dispositivos son sólo secuanciales
Sistemas de tiempo compartido
Aparecen las terminales
El programa se puede editar y ejecutar de manera inmediata
La computadora calcula mientras se programa
Control de tarea simultánea
Multitarea compartida o no apropiativa
Cada proceso tiene control del CPU hasta que se lo quiten o lo renuncie
No se interrumpen los procesos, por lo que se podía congelar la computadora
Creanlos archivos y directorios
Ilusión de uso exclusivo, instancia de un programa en ejecución
Primeras computadoras personales
Sin SO, programa con switches y con leds daba los resultados
8 bits
Salida de video h entrada por teclado
Lenguaje BASIC
software mínimo
PCs en el, rio
El SO separa entorno de desarrollo del de ejecución
El SO administra archivos por línea de comando y ejecutar aplocaciones
Abstracciones en su interfaz y E/S por los puertos
WIMP
Aparecen los GUI basadas en WIMP, que permite la interaccion con varios programas simultáneamente (no multitarea)
Los programas ya no se ejecutan en pantalla, sino wue en ventana
Problemas del WIMP
Programar tomando en cuenta que se comparten recursos
Un programa dañino o fallido podía corromper todo el equipo
Windows
Microsoft, usa ventanas para todo Funciones multitarea Plug and play (identiica hardware al conectar) Barra de tareas y boton de inicio Núcleo híbrido
MACOS
System Crea las ventanas Primero en usar mouse Menú y finder Graba discos compactos desde finder Transparencias, minimalista Núcleo hibrido Licencia exclusiva a sus dispositivos
GNU/LINUX
Abierto al público
Se crea el GNU y apps, pero sin kernel
Se crea LINUX para funcionar como kernel de GNU
Software libre (linux es sólo el núcleo de muas variaciones)
Protección de memoria
Se puede conectar a cualquier red
Núcleo monolítico
Chrom OS
Orientado a la web Basado en linux, es de codigo abierto Para cualier cosa se necesita conexión a internet Se enciende y apaga rápido Núcleo monolítico para chromebooks
Android
Núcleo de linux Dispositivos móviles con pantalla táctil Se adapta a cualquier pantalla Andoid inc y luego google Núcleo monolítico Software libre
IOS
Antes iPhone OS Muestra todas las Apps y el dock Crear carpetas es fácil Tiene mucha protección, el más seguro que hay Núcleo híbrido
Fomas de organizar el SO
Monolítico y microkernel
Después se crea el híbrido
Sistema monolítico
El núcleo tiene la mayor parte de la funcionalidad
Es más rápido pero vulnerable a errores de programación
Sistema microkernel
El núcleo sólo administra tareas y comunica procesos, memoria de bajo nivel
Todo lo demás se ejecuta en modo usuario
Un error de programación no afecta a todo
Problemas de sincronización de componentes
Sistema híbrido
Micronúcleo con código complementario para rapidez, pero sigue siendo mayormente en modo usuario
Modo kernel (funciones)
Código con acceso a todo hardware
Ejecuta cualquier instrucción y accede a cualquier lugar de memoria
Se reserva a lo confiable y de bajo nivel
Todo crasheo es catastrófico y detene a la computadora por completo
Modo usario (funciones)
No accede directamente a hardware ni tiene acceso a memoria
Debe delegar APIs para aceder al hardware o memoria
Crasheos recuperables
La mayoría del código es en modo usuario
Shell
Software que funge como interfaz de usuario al sistema operativo, da acceso al kernel
Tipos de shell
Command-line
GUI
GCLI
Shell porque…
Da mayor control Puedes ejecutar comandos de permisos, ocultos, bases de datos, servidores y admin. de procesos Más rápido Automatización Comandos estánar
POWESHELL
cmdlets (objetos de programación)
Usa pipes para hacer codigo complejo
Crea alias para cmdlets o scripts
Programa
Lista de instrucciones (entidad pasiva)
Proceso
Entidad activa que emplea el programa, opera sobre un conjunto de datos y tiene información de estado
Sólo un proceso por núcleo
Estado nuevo
Se solicitó al SO la creación del proceso, se están creando los recursos y estructuras
Estado listo
Listo para iniciar o continuar, pero no tiene un procesador
Estado en ejecución
Sus instrucciones están siendo procesadas
Estado bloqueado
Está esperando algo para seguir
Estado terminado
El proceso terminó y las estructuras esperan a ser limpiadas por el SO
Contador del programa
Cual es la siguiente instrucción
Registros del cpu
Información específica del estado del CPU
Información de planificación
Prioridad del proceso, la cola en que está e información importante para agendar el proceso
Información de administración de memoria
Tablas de mapeo de memoria
Estado de E/S
Lista de dispositivos y archivos que el proceso tiene abiertos
Información de contabilidad
Sobre utilización de recursos del proceso (timpo usuario y sistema, uso de memoria y dispositivos)
Ilusión de congruencia
Ilusión de ejecución simultánea, pero casi todos están suspendidos
Sólo se puede ejecutar <= al número de núcleos
Propiedades del cómputo secuencial
Facilidad ee comprensión, predictibilidad y determinismo
Problemas de los hilos
Son no determinísicos, el programador debe podar eso
Jefe-trabajador
Cada hilo hace una cosa y el jefe recopila o genera
Hilos trabajadores hacen lo suyo
Proceos de servidor, GUIs de eventos
Jefe puede llevar contabilidad
Equipos de trabajo
Hilos idénticos
Mismas tareas sobre diferentes datos
Cálculos matemáticos y render
Se mezcla con jefe-trabajador si se quieren previsualizaciones
Línea de ensamblado
Tarea larga por pasos Cada hilo hace una cosa Pasa datos al siguiente Rutinas fáciles de entender Permite procesar datos cuando hay hilos esperando
Hilos de usuario (verdes)
Hilos implementados con facilidad de proceso
Mayor portabilidad
Biblioteca del lenguaje o entorno de programación
Multitarea interna cooperativa
Lo bueno de los hilos de usuario
Memoria compartida sin intervención del SO
Mayor rapidez para trabajos cooperativos o multiagentes
Lo malo de los hilos verdes
Llamada al sistema interrumpe a los hilos
No aprovechan multiprocesamiento
Hilos nativos (kernel)
Bibliotecas del sistema informan al sistema
Núcleo hace multitarea preventiva entre hilos
El proceso puede pedir más procesadores (ejecución paralela)
Prioriza de manera diferente al multihilo
Concurrencia
Dos o más eventos con orden no determinista, no se puede predecir su orden
Concurrencia cuando…
Dos o más hilos al mismo proceso
Dos o más procesos en la misma computadora
Dos o más procesos en computadoras en una red
Dos o más procesos independientes que luego requieren sincronización
Problemas de la concurrencia
El planificador puede interrumpir el flujo en cualquier momento
No hay garantía del ordenamiento
Sincronización
El proceso puede depender de dstos externos
Esperar a que otro proceso pase cierto paso
Condición de carrera
Error de programación Implica a dos hilos Fallan al comunicar el estado mutuo Resultados inconsistentes No considera la aromicidad de una operación
Operación atómica
Se garantiza que se ejecuta en una sola unidad de ejecución
Requiere sincronización explícita entre los procesos que la realicen
Sección crítica
Area del código que realiza el acceso de datos, debe ser protegida de simultáneos. Se protege con mecanismos atómicos
Sincronización
Exclusión de una sección crítica común a varios procesos se protege por exclusión mutua
Ejemplo no atómico
El que comora dos cosas en páginas y termina con un saldo negativo
Problema productor-consumidor
Un productor hace elementos uno a uno y el consumidor quiere agarrar uno a uno
El consumidor quiere tomar pero está vacio
El buffer está lleno pero no puede meter el productor
Ambos quieren al mismo tiempo, pero no se debe
Si hay dos consumidores simultáneos, pero no debe
Problema lectores escritores
Hy un recurso, se puede leer por varios a la vez, pero sólo puede escribir uno a la vez, si hay fila, el escritor se pone hasta adelante
Cena de los filósofos
Hay 5 lugares y 5 palillos, para comer se necesitan 2 palillos, si no come, piensa
Hacer 4 sillas para que siempre haya un filósofo con 2
Problema fumadores
Para fumar necesitas 3 cosas, hay tres personas y cada uno de ellos tiene una de esas 3
El proveedor da dos cosas al azar y se acercan los fumadores y uno puede fumar
El proveedor descansa hasta que termine de fumar, cuando termina, pone otros dos y fuma el que pueda
Bloqueo mutuo
Dos procesos necesitan lo mismo y ninguno puede hacerlo porque están esperando al otro
Sólo se soluciona si se detiene a uno de los dos
Inanición
Dos o más procesos pasan por la sección crítica, pero eso no deja que otro proceso pase
Candados (mutex)
Asegura que la región del código será ejecutada como atómica
Ejemplo del baño con la llave fuera
Semáforo
Sincroniza y comunica (limitadamente) a procesos
Inician en valor entero
Suben (v) o bajan (p) en 1
Variables de condición
Operan con un mutex
Wait() libera el candado y se bloquea hasta que me digan
Signal() despierta al hilo
Broadcast() notifica a los hilos en espera
Timedwait() como wait, pero caduca