Sistemas Operativos(1).pdf

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Full Transcript

Sistemas Operativos Que es un sistema operativo? - Es un conjunto de programas y algoritmos que actúa como intermediario entre el usuario y el hardware de la computadora. Es un software que gestiona los recursos de hardware y software de la computadora y proporciona servicios comunes para los...

Sistemas Operativos Que es un sistema operativo? - Es un conjunto de programas y algoritmos que actúa como intermediario entre el usuario y el hardware de la computadora. Es un software que gestiona los recursos de hardware y software de la computadora y proporciona servicios comunes para los programas - Las personas interactuamos con las aplicaciones, NO directamente con el S.O - Las bibliotecas, mal llamadas “librerias” porque el termino proviene de libraries. Las bibliotecas son un conjunto de implementaciones funcionales en la forma de rutinas (o subrutinas) que una aplicacion puede invocar para realizar una operacion comun a muchas aplicaciones: funciones matematicas o de entrada/salida Las computadoras son máquinas de arquitectura Von Neumann cuando:  Tanto los programas como los datos se almacenan en una memoria en comun. Esto hace posible la ejecucion de comandos de la misma forma que los datos  Cada celda de memoria de la maquina se identifica con un numero unico, llamado direccion  Las diferentes partes de la informacion (los comandos y los datos) tienen diferentes modos de uso, pero la estructura no se representa en memoria de manera codificada  Cada programa se ejecuta de forma secuencial que, en caso de que no haya instrucciones especiales, comienza con la primera instruccion. Para cambiar esta secuencia se utiliza el comando de control de transferencia Este modelo describe una arquitectura de diseño para una computadora digital electrónica con partes que constan de una unidad de procesamiento que contiene una unidad aritmético lógica y registros del procesador, una unidad de control que contiene un registro de instrucciones y un contador de pograma, una memoria para almacenar tanto datos como instrucciones, almacenamiento masivo externo, y mecanismos de entrada y salida. Para lograr sincronizacion entre CPU y disp E/S hay dos metodos: 1. Transferencia de datos por interrupciones IRQ(interrupt request): es una señal recibida por el procesador para indicar que debe INTERRUMPIR la ejecucion actual y pasar a ejecutar codigo específico para tratar esta situacion 2. Transferencia de datos por acceso directo a memoria (DMA Direct Memory Access): permita a cierto tipo de componentes de una computadora acceder a la memoria del sistema para leer o escribir independientemente de la CPU. Permite a disp. de diferentes velocidades comunicarse sin someter a la CPU a carga masiva de interrupciones Modos de operacion: - El S.O se encarga de operar en el modo Nucleo o supervisor del microprocesador - El resto de programas operan en el modo usuario o protegido Los dominios de proteccion jerarquica o anillos de proteccion, los mecanismos para proteger datos y funcionalidad de los fallos y comportamiento malicioso. Los anillos estan dispuestos en una jerarquia desde los mas privilegiados (de mas confianza), usualmente numerado cero, hasta el menos privilegiado (de menos confianza), usualmente con el mayor numero de anillo En el anillo más privilegiado se tiene acceso a todo el conjunto de instrucciones del procesador y a todas las posiciones de memoria. En el anillo menos privilegiado sólo se tiene acceso a un conjunto restringido de instrucciones de procesador y a un área menor de posiciones de memoria. Los procesadores suelen tener mas anillos que los que usan los sistemas operativos Para saltar de un modo a otro, las aplicaciones se valen de las LLAMADAS A SISTEMAS (system calls) ¿Qué es una llamada a sistema? - Es invocada por un proceso de usuario o proceso que ejecuta con el procesador en modo usuario y es servida por el nucleo, que opera con el procesador en modo supervisor - Una llamada al sistema implica pasar o saltar del codigo del usuario al codigo del nucleo. Conlleva un cambio en el modo del funcionamiento del procesador Las primeras computadoras: z1, ABC, z2, z3, colossus, ASCC Los sistemas operativos:  GM-NAA I/O:  Multics (Multiplexed Information and Computing Service)  UNIX  VMS (Virtual Memory System)  Linux  Evolución de Windows LICENCIA: Una licencia es una cesión de derechos por parte del propietario del mismo hacia el licenciatario. Toda licencia tiene dos aspectos:  Aseguran los derechos del usuario, detallando las autorizaciones para el uso del software.  Protege los derechos del titular, al especificar los derechos no cedidos y las condiciones que debe cumplir el usuario. TP-1 Ubuntu es un sistema GNU/Linux instalado en CD-ROM también llamado LiveCD. Es decir que no es necesario que se instale en el disco rigido Terminal en Ubuntu que corresponde a la app “gnome-terminal”, se puede abrir con Ctrl+Alt+t. cuando se abre esta app, se está haciendo uso de una interfaz de línea de comandos o (Command Line Interface, CLI). El intérprete de comandos usado es el bash (Bourne Again Shell) A «ubuntu@ubuntu:~$» se la denomina prompt, en inglés. Lo que se introduzca, luego de presionar la tecla Enter, intentará ser interpretado y, si es posible, ejecutado por bash. El prompt es muy personalizable y puede tomar muchas formas  El símbolo arroba (@) es llamado «at sign» en inglés, es decir signo «en».  Luego, el símbolo «~» significa que estamos posicionados en nuestro directorio personal o «directorio casa» (home directory, en inglés).  El símbolo «$» significa que somos un usuario sin privilegios administrativos. En caso de estar utilizando un usuario con privilegios administrativos, el símbolo será «#». El comando exit cerrara la sesión de línea de comandos Comandos básicos  pwd: devuelve el path donde estamos  ls: lista los archivos y directorios  nautilus: abre app de explorar archivos  dmesg (diagnostic message): muestra y controla el buffer de anilo del nucleo (kernel ring buffer). Se le llama “de anillo” porque es una estructura de datos de tamaño limitado que, al llenarse, se continua llenando por el principio. Desde el momento del arranque (boot) el nucleo guarda ahí todos sus mensajes, sobretodo del hardware que va detectando, es una buena herramienta para identificar los componentes de nuestra computadora, cada vez que conectamos o desconectamos un dispositivo (por ejemplo al USB) el núcleo registra lo acontecido en ese buffer. Lo mismo ocurre si el hardware comienza a fallar. Como la información es muy extensa y se pierde, vamos a verla «por partes». Para ello, vamos a valernos del comando less, usándolos conjuntamente mediante la barra vertical «|» llamada «pleca» en castellano  procfs: En muchos sistemas operativos tipo UNIX se utiliza el sistema de archivos proc (proc filesystem o procfs), que es un sistema de archivos, generado dinámicamente, que muestra información de procesos. procfs es un sistema de archivos que no tiene relación con un dispositivo de almacenamiento por bloques. Está implementado en el núcleo del sistema operativo y permite llevar a «espacio de usuario» datos del núcleo y de los procesos, que, sin la ayuda de procfs, sería casi imposible accederlos. Este sistema dado que no contiene archivos reales, no consume espacio de almacenamiento. Entonces con este comando, podemos ver información acerca de nuestra CPU  cat: es un programa que se utiliza para concatenar archivos, pero utilizado de este modo muestra el contenido de un archivo (de texto) por la pantalla  cat /proc/meminfo: muestra el estado actual de la memoria del sistema, incluyendo información de la memoria virtual y la cache  cat /proc/interrupts: muestra la información sobre las IRQs, muestra el número de la interrupción usada y quien la usa *Los archivos en /proc muchos tienen tamaño cero, actúa como puntero hacia donde residen los datos, es una ventana al nucleo *BogoMIPS (Bogus Millions Instruction Per Second): medida no cientifica de medir la velocidad del procesador y que es típica del nucleo Linux usada para calibrar el busy-loop o espera activa. Es decir que podríamos calificarlo como “el número de millones de veces por segundo en el que un procesador no puede hacer absolutamente nada”. Llamadas al sistema  strace (system call trace): sigue la traza a las llamadas a sistema y las señales de un proceso, interceptándolas, registrándolas y mostrándolas por pantalla (stderr, standard error). Cada línea tiene el nombre de la llamada a sistema, seguido por sus argumentos en paréntesis y sus valores retornados GNU Compiler Collection  conjunto de compiladores creados por el proyecto GNU  Originalmente GCC (y el comando «gcc») significaba GNU C Compiler (compilador GNU de C), porque sólo compilaba el lenguaje C,  La opción “-o” se usa para indicar que el archivo de salida (output) a generar debe llamarse como se le indica a continuación, caso contrario, el archivo de salida siempre se llamará «a.out», y se lo ejecuta colocando por delante «./» (punto barra),  gcc –S hello.c: el commando invoca al preprocesador (cpp) sobre el archivo hello.c, genera el archivo hello.s en assembler El comando time  Sirve para tomarle el tiempo de ejecución a los comandos Sysinternals: podemos ver información mucho más especifica con pocos privilegios, los utilitarios se deben ejecutar en el símbolo del sistema Windows Support Tools: son herramientas para administrar y descubrir problemas en Windows. Windows Resource Kits: agrega herramientas adicionales para la administración del sistema ProcFeatures de Sysinternals: usa la API IsProcessorFeaturePresent de windows para determiner si el procesador y Windows soportan distintos rasgos, tales como páginas de no-ejecución (No-Execute pages), extensiones de direcciones físicas (Physical Address Extensions o PAE) y un contador de ciclo de tiempo real. Su propósito principal es identificar la versión de PAE del núcleo que ejecuta el sistema y si soporta la protección de desborde del buffer de no-ejecución. Además, nos muestra el tipo de procesador (marca y modelo), la frecuencia en MHz, si soporta el conjunto de instrucciones MMX y SSE -o Streaming SIMD Extensions- de Intel. CoreInfo: utilario de línea de comando que nos muestra la equivalencia entre procesadores lógicos y procesadores físicos, nodo NUMA y el socket en el cual residen, como así también la caché asignada a cada procesador. Utiliza la función de Windows GetLogicalProcessorInformation. Util para obtener una visión dentro del procesador y la topología de cache de su sistema StraceNT: es un trazador de llamadas a sistema (System Call Tracer) para Windows. Provee funcionalidad similar a strace de Linux. Útil para depurar y analizar el funcionamiento interno de un programa Administrador de tareas (Task Manager): nos permite ver la actividad de las apps en modo usuario y el efecto en modo nucleo El compilador Dev-C++: se usa para compilar códigos en C, es un IDE (Integrated Development Environment, Entorno de Desarrollo Integrado), libre, portable y rapido 2-Procesos Es un programa en ejecución. Se refiere al conjunto de ejecución de instrucciones de maquina PROGRAMAS  Aplicación o software de aplicación: o Programas o grupos de programas diseñados para ser usados directamente por los usuarios (también llamados usuarios finales)  Software de sistemas: o Son los programas que interactúan de forma más directa con el SO, tales como compiladores, depuradores y emsambladores  Hilos: o Asociados a un proceso encontramos su código, sus datos, los recursos operativos asignados a el y uno o mas “hilos”(threads) de ejecución o Es un flujo de ejecución a lo largo del código del proceso, con su propio contador de programa, registros y pila. Pueden compartir el mismo espacio de direcciones CLASIFICACION DE LOS SISTEMAS OPERATIVOS:  De un único proceso con un único hilo  De varios procesos con un único hilo  De múltiples procesos con varios hilos ESTADO DE UN PROCESO: un proceso es dinámico, cambia su estado a medida que se ejecuta. Como mínimo un proceso puede estar en uno de los siguientes 3 estados:  Ejecutándose (running): un proceso que está ejecutando en un CPU, si un sistema tiene n CPUs puede tener como máximo n proceso en ese estado  Bloqueado (blocked): el proceso está esperando que ocurra algún evento, como por ejemplo la finalización de una operación de E/S  Listo (ready): un proceso que no está asignado a la CPU pero está listo para ejecutar. Un proceso listo podría ejecutar si se lo asigna a una CPU  Nuevo (new): también llamado “creado”, espera admisión al estado “listo”  Listo (ready): también llamado “esperando”, ha sido cargado en memoria principal y espera que el despachador lo ponga a ejecutar. Puede haber varios procesos en este estado  Bloqueado (blocked): un proceso que esta esperando que ocurra un evento antes de que pueda continuar. Con frecuencia, este evento es la finalización de una operación de E/S. No requieren servicios de la CPU  Terminado (terminated): un proceso que ha detenido su ejecución pero el SO aun mantiene un registro de el (en UNIX, a estos procesos se les llama “zombie”) Podemos definir dos estados mas en los sistemas que cuentan con memoria virtual:  Intercambiado y esperando: o “suspendido y esperando”, fue sacado de la memoria principal y almacenado en memoria secundaria  Intercambiado y bloqueado: o “suspendido y bloqueado”, un proceso que estaba bloqueado también puede pasar a residir en el área de swap ESTADOS DE UN PROCESO EN LINUX  Uninterruptible sleep (D): espera ininterrumpible, generalmente el proceso se encuentra esperando una operación de E/S con algún dispositivo  Interruptible sleep (S): espera interrumpible. El proceso se encuentra esperando a que se cumpla algún evento, por ej., que el planificador de procesos del nucleo lo planifique para su ejecución  Running (R): corriendo. El proceso se encuentra corriendo en el procesador  Stopped (T): Trazado o detenido: un proceso que ha sido detenido mediante el envío de alguna señal generalmente. « dirige la salida de un comando a un archivo especifico  Dónde: o 829 es el PID dado al proceso o es el número de tarea dado por el bash al proceso que se ejecuta en el background Mejorar la prioridad de un proceso Cambiar prioridad de un proceso Terminar un proceso ejecutando en el background  Dónde: o % accede a los procesos de background o 2 es el numero dado por el bash al proceso o Jobs lista los procesos de background

Use Quizgecko on...
Browser
Browser