Coloquio Flashcards
(177 cards)
Que hace un sistema operativo?
Administra los recursos de hardware de un sistema de
computación para ofrecer servicios a sus usuarios.
Es un programa que controla la ejecucion de otros programas (aplicaciones). Debe perseguir 3 objetivos:
Eficiencia
Evolucion
Comodidad
Debe ofrecer servicios tales como: creacion de programas, ejecucion de programas, acceso a dispositivos de E/S, acceso controlado a los archivos.
Ademas, el SO debe proveer servicio de deteccion y respuesta a errores, como fallas de hardware o de software. Tambien debe proveer un sistema de contabilidad y monitoreo de recursos.
Es un sistema de control, que funciona dentro del mismo sistema que controla, y ademas abandona el control del sistema para dar lugar a las tareas de los usuarios
Componentes de un sistema de computación
Procesador, Memoria principal, Dispositivos de E/S, Interconexión
Registros del procesador
Visibles para el usuario: Al utilizarlos se reduce el acceso a la memoria principal.
De control y estado: Utilizados por el procesador para ejercer control sobre las operaciones y por rutinas del SO
Registros visibles
Se puede hacer referencia a estos registros (programador). Por ejemplo de datos, de direcciones, etc.
Registros de direccion (forma parte de registros visibles para el usuario)
Registro indice: para formar direcciones fisicas a partir de logicas
Puntero de segmento: tambien se usa para formar direcciones
Puntero de pila: contiene direccion a extremo superior de la pila
Registros de control y estado
PC (program counter): contiene direccion de memoria donde se almacena la proxima direccion a ejecutar
IR (instruction register): contiene ultima instruccion leida
PSW (program state word): muestra los codigos de condiciones, estado de interrupciones, privilegio de ejecucion, etc.
Ciclo de instruccion
Procesador lee instruccion de memoria RAM que indica el PC, luego de esto el PC se incrementa. Procesador carga la instruccion en el IR, se interpreta y ejecuta, y el ciclo se repite.
Con interrupciones: antes de buscar una nueva instruccion el procesador verifica si hubo una interrupcion. Luego busca siguiente instruccion del programa o primera instruccion de la rutina de interrupcion, segun sea el caso.
Tipos de instruccion (CPU)
Transferencia procesador/memoria: se mueven datos desde registros a RAM y viceversa
Transferencia procesador E/S: se mueven datos desde el procesador a dispositivo E/S y viceversa
Manipulacion de datos: operaciones aritmeticas o logicas sobre datos en los registros
Control: instrucciones que alteran la secuencia de ejcucion, modificando PC
Interrupciones
Evento que interrumpe el flujo normal de instrucciones. Procesador guarda estado de sus registros y sirve la interrupcion. Luego reanuda su ejecucion donde la dejo. Esto tambien se usa para que el procesador multiplexe entre procesos.
Se transfiere el control desde el programa del usuario hacia el SO.
Tipos de interrupciones
De programa: generadas por el mismo procesador mientras ejecuta un programa. Desbordamiento, division por cero, etc.
De reloj: disparada por un contador de hardware
De E/S: generada por dispositivos externos: mouse, teclado, placa de red, etc.
Interrupciones multiples
En estos casos pueden servirse de manera secuencial o por orden de prioridad.
Secuencial: se sirve la primera, inhabilitando servicio de interrupciones hasta terminar de servirla, y luego se continua.
Prioridad: si se esta sirviendo una interrupcion y llega otra de mayor prioridad, se interrumpe la actual y se sirve la de mayor prioridad.
Multiprogramación
Ejecucion de multiples programas en simultaneo. Mientras un programa espera por E/S se ejecuta otro. Todo esto se hace con interrupciones.
Ejecucion de operaciones de E/S (tipos)
E/S programada: Procesador pide datos (lectura o escritura) y espera hasta que la operacion termine
E/S por interrupciones: Procesador pide datos (lectura o escritura), luego comienza a ejecutar otro programa hasta que el dispositvo interrumpe para avisar que termino
E/S por DMA (direct memory access): igual al anterior pero el dispositivo interrumpe cuando termina de copiar datos a memoria principal. De esta forma se libera al procesador de la tarea de mover los datos
DMA (Direct memory access)
Sistema que permite a dispositivos de E/S acceder directamente a la memoria RAM, liberando al procesador de esta tarea
Jerarquia general de memoria
Al descender por la piramide el costo por bit se reduce, aumenta la capacidad, pero disminuye la velocidad.
Cache de disco
Porcion de la memoria principal que se utiliza para guardar datos de la memoria secundaria, que se supone se utilizan frecuentemente, con el objetivo de ganar velocidad. Tambien se usa para juntar bloques de datos a escribir antes de iniciar tranferencia al disco
Memoria cache
Es la misma idea que el cache de disco, pero esta se situa entre el CPU (registros) y la RAM. Se utiliza para guardar datos o instrucciones que el CPU usa con frecuencia. El SO desconoce esto, ya que se maneja por HW especifico. Cuando el CPU necesita un dato primero lo busca en la cache, y si no lo encuentra lo busca en memoria
Evolucion de los SO
Primera generacion (1945-55) Sistemas basados en valvulas concebidos de manera casi artesanal.
Segunda generacion (1955-65) Sistemas a base de transistores
Tercera genracion (1965-80) Se intenta mejorar la eficiencia de la produccion de sistemas, aparece multiprogramacion, se desarrolla UNIX y estandar POSIX
Cuarta generacion (1980-90…) Aparecen microcomputadoras o computadoras personales PC. Aparece MAC, windows, redes LAN, WAN, se desarrolla el kernel LINUX
Quinta generacion (1990-….) Evolucion de dispositivos moviles. IOS, Android, Windows, RIM (blackberry)
Multiprogramacion y Tiempo compartido
Multiprogramacion: multiples programas ocupando la memoria de manera simultanea y que se alternan para usar el CPU
Tiempo compartido: similar a multiprogramacion, pero con la diferencia de que soporta multipes sesiones interactivas
Atributos de SO modernos
Concepto de proceso, gestion de memoria y concepto de memoria virtual, seguridad en el manejo de la informacion, planificacion avanzada del uso de recursos, estructura modular del sistema
Otros atributos mas recientes:
MicroKernels: solo las funciones esenciales son ejecutadas por el kernel
Multithreading: para soportar procesadores con capacidad de ejecutar multiples threads
Multiprocesamiento simetrico: para soportar sistemas con multiples nucleos que comparten E/S y memoria
Sistemas operativos distribuidos: en base a multiples sistemas diferentes le ofrece al usuario uno unico.
Problemas de la multiprogramacion
Sincronzacion incorrecta: rutinas que esperan señales, que pueden llegar duplicadas o no llegar
Fallos de exclusion mutua: accesos simultaneos y conflictivos a los recursos
Funcionamiento no deterministico: interferencias entre programas, dificil de depurar
Interbloqueos: dos o mas programas esperandose mutuamente
Concepto de proceso
Es una unidad de ejecucion constituida por:
Un programa ejcutable
Datos e instrucciones necesarios para el programa
Entorno o contexto de ejecucion para el programa, es decir informacion externa al programa que crea y mantiene el SO para administrar su ejecucion (informacion de estado y de control)
Avances en el manejo de memoria
Aislamiento de procesos, evita interferencias
Asignacion automatica y gestion de la memoria para los procesos de manera transparente
Proteccion y control de acceso, permite compartir datos entre programas de forma controlada
Almacenamiento de largo plazo
Memoria virtual
Permite a los programas utilizar y acceder a la memoria independientemente de su implementacion fisica. Aparecen conceptos de paginacion y segmentacion