Ayudantía 2: El Sistema Operativo UTFSM - Sistemas Operativos Ayudantía 2: El Sistema Operativo
Conceptos importantes Procesos / servicios Tareas: Set de instrucciones cargadas en memoria. Interfaces Llamadas a sistema Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Parte del sistema operativo Nos interesa tener más aplicaciones que las que trae el SO. Estas aplicaciones pueden interferir con el SO, o con otras aplicaciones. Por lo tanto, tenemos: U.I. Program execution Error detection Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Evitar interferencias No queremos que se interfiera con el SO Cada aplicación con su algoritmo para leer del disco duro? Para cada sistema de archivos?... Debemos usar llamadas a sistema O no? Ejemplo para reproducir un sonido Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Llamadas a sistema Conceptos: Identidad Parámetros: Registros Block/table Stack fd = open(“theFile”, O_RDONLY, 0744); push 0744 push O_RDONLY pushd PtrToString call open mov [ebp-fd],eax add esp,12 Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Diferencia entre “system programs”, “system calls” Ejemplo de copiar archivo. Esto proporciona abstracción. Basta con esto? Debiera haber un “system program” para cada cosa que uno desee hacer? Todas las aplicaciones debieran estar formadas llamando a varios system programs? Rendimiento? Qué pasa si uno quiere una aplicación multiplataforma? Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Application programming interfaces Para qué? Ejemplo de interfaz: DirectSound y WASAPI ASIO, OpenAL Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Ejemplo usando API using Microsoft.DirectX; using Microsoft.DirectX.DirectSound; Public void playMetal() { Device device = CreateDevice(); Buffer buffer = new Buffer(“Opeth - Deliverance.mp3”, device); buffer.Play(0, BufferPlayFlags.Default); } Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Interfaces Se facilitó todo! Tenemos API’s para todo: OpenGL CUDA Etc! Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Kernel Qué es? Layered (hardware..UI) Microkernel Modular Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Virtual machines Descripción ejemplificada de “The Da Vinci Machine” para JVM, comparándolo con IronPython en .NET Ayudantía Sistemas Operativos - http://villaseca.wordpress.com
Ayudantía Sistemas Operativos - http://villaseca.wordpress.com Debugging Lo hace el sistema operativo? Stack traces O la VM? Exceptions Ejemplo de debugger por debajo del SO SoftICE Ayudantía Sistemas Operativos - http://villaseca.wordpress.com