Sistemas Operativos:
Unidad 1 - Introducción
Gustavo Andrés Uribe Gómez
guribe@unicomfacauca.edu.co
+572 8220517 Ext. 130
Introducción a los Sistemas Operativos
¿Qué son? o ¿Qué hace?
Fuente: Wikipedia
Modo Kernel
Modo usuario
Controladores
Aplicaciones de usuario, GUI y Shell
- Ofrecen una capa de abstracción para el programador
- Administra los limitados recursos hardware
Características Principales
- Grandes (~cinco millones de líneas de código)
- Complejos
- De larga duración
- Protegidos contra la modificación del usuario
- Tienen privilegios de ejecución
Algo de Historia
Primera Generación (1945-1955)
Fuente: wikipedia.org
Primera Generación (1945-1955)
Fuente: wikipedia.org
Segunda Generación (1955 a 1965)
Fuente: Sistemas Operativos Modernos, Tanenbaum, 3 edicion, 2009
Fuente: Sistemas Operativos Modernos,
Tanenbaum, 3 edicion, 2009
Segunda Generación (1955 a 1965)
Tercera Generación (1965-1980)
Fuente: Sistemas Operativos Modernos, Tanenbaum, 3 edicion, 2009
Tercera Generación (1965-1980)
- MULTICS (MULTiplexed Information and Computing Service; Servicio de Información y Cómputo MULTiplexado)
- UNIX, multics para un solo usuario (desarrollado en PDP-7, IEEE implementó el estándar POSIX)
- System V
- BSD
- MINIX (1987)
Cuarta Generación (1980 - hoy)
- CP/M 1974 (Control Program for Microcomputers; Programa de Control para
Microcomputadoras) - DOS (1980) -> MS-DOS
- Windows 3.1 (1985) - Windows Vista (2007)
- MINIX -> Linux (1991)
Tipos de Sistemas Operativos
- Para mainframe
- De servidores (Solaris, FreeBSD, Linux, Windows Server 200x)
- De multiprocesadores
- De computadores personales
- De bolsillo
- Embebidos
- En tiempo real
Exposición Partes del Computador
- Procesadores y arquitecturas
- Memoria (jerarquía, tipos, ...)
- Discos
- Buses
- Dispositivos de entrada y salida
- Sistema de arranque (BIOS)
Conceptos Básicos de los S.O.
Procesos
- Programa en ejecución
- Tiene asociado:
- Espacio de direcciones
- Lista de ubicaciones en memoria
- Programa ejecutable
- Datos del programa (ej. variables)
- Pila
- Ubicaciones de escritura y lectura
Procesos
- Tiene asociado recursos como:
- Contador del programa
- Apuntador de pila
- Lista de archivos abiertos
- Alarmas pendientes
- Procesos relacionados
- La información de los procesos se almacena en la "tabla de procesos" del S.O.
- En determinadas ocasiones el S.O. puede enviar señales de alarma a los procesos
Procesos
-
Son identificados con
- UID (User Identification, Identifica-
ción de usuario) - GID (Group Identification, Identificación de grupo)
- UID (User Identification, Identifica-
- Los procesos ejecutados por el superusuario tiene privilegios
Procesos
Fuente: Sistemas Operativos Modernos, Tanenbaum, 3 edicion, 2009
Archivos
- Es la abstracción de los discos duros y en algunos de los S.O. de todos los elementos de E/S
- En la mayoría de S.O. los archivos se agrupan en directorios
- El directorio padre se conoce como directorio raíz
- El nombre de ruta, describe la ubicación del archivo
- /Documentos/Unicomfacauca/SO/Unidad1.pdf
- C:\Documentos\Unicomfacauca\SO\Unidad1.pdf
Archivos
Shell
- Principal interfaz con el sistema operativo
- Ejemplos: sh, csh, ksh y bash
- Los comandos se ingresan en un prompt
- Todos los comandos se crean como procesos hijos del shell
- Ejemplos de comandos:
- date >archivo
- sort <archivo1 >archivo2
- cat archivo1 archivo2 archivo3 | sort >/dev/lp &
Llamados al Sistema
Fuente: Sistemas Operativos Modernos, Tanenbaum, 3 edicion, 2009
Llamados al Sistema
Llamados al Sistema
Llamados al Sistema
Ejemplo Llamados al Sistema
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h> //Librería que contiene los llamados al sistema relacionados con los procesos
int main(void) {
puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
char* param[]={"mkdir","prueba",NULL};
execv("/bin/mkdir",param);
return EXIT_SUCCESS;
}
Comandos Linux
Descubre que hace
-
find /home/usuario -cmin -60
-
find . -type f -name "*.mp3" -exec rm -f {} \;
-
find ~ -type f -name *.log -size +10M -exec rm -f {} \;
- factor 512121566
- for i in {1..9}; do for j in $(seq 1 $i); do echo -ne $i×$j=$((i*j))\\t;done; echo;done
- espeak -v es-la "Yo hablo español"
- bb
Sistemas Operativos - Unidad 1
By Gustavo Andrés Uribe Gómez
Sistemas Operativos - Unidad 1
- 676