Operaciones con procesos

Operaciones con procesos - Sistemas Operativos Sesión 4...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Sistemas Operativos Sesión 4 Operaciones Operaciones con procesos Conceptos clave Conceptos System calls. Modo dual de operación de procesos. Modo operación Modo sistema y modo usuario. Operaciones con procesos. Caso UNIX y NT. Sistema computacional Usuario final Programador Aplicaciones Utilerías Sistema Operativo Hardware Diseñador de Sistema Operativo Modos de Operación del Sistema Operativo • El S.O se encarga de crear la abstracción de proceso. • El S.O. se activa al arrancar el sistema pero, una vez hechas las iniciaciones correspondientes, pasa el control al primer proceso que creó en esta fase inicial y a partir de este momento se convierte en una entidad pasiva que ofrece servicios a los procesos, que son las únicas entidades activas del sistema. • Son los procesos los que ejecutan el código del S.O. como si éste fuera una gran biblioteca de servicios dirigida por 5 eventos. Modo dual de ejecución P r o c e s o Supervisor (Privilegiado) CPU usuario Es importante entender que el modo dual de operación ocurre en el CPU y no en el proceso en ejecución, es decir; El CPU es el que ejecuta instrucciones en modo supervisor o en modo usuario. Modo dual de ejecución Modo User mode (modo usuario). Se ejecutan las instrucciones que el Se programador escribió en el código del proceso, con el procesador en modo no privilegiado. privilegiado. System mode (modo sistema, núcleo o modo privilegiado). privilegiado Se ejecuta código del sistema operativo con Se el procesador en modo privilegiado debido a la ocurrencia de algún tipo de interrupción. la System calls System System call / Supervisor call: Mecanismo mediante el cual un proceso solicita la ejecución de una acción o servicio al sistema operativo. Cuando el sistema operativo ejecuta las instrucciones de un System Call se dice que el proceso está ejecutando en modo supervisor (modo sistema, núcleo ó privilegiado). System Call System MEMORIA N Direcciones de memoria principal PROCESO N PROCESO 2 PROCESO 1 4 1 2 0 PROCESO DE USUARIO MODO USUARIO 3 SERVICIO MODO NÚCLEO TABLA S.O. RUTINA DE BIBLIOTECA PROCESO DE USUARIO TRAP HW TRATAMIENTO DE INTERRUPCIÓN RUTINA DE SERVICIO 9 SISTEMA OPERATIVO Modo dual de ejecución Modo PROCESO A __________ rio sua __________ U odo M __________ Tiempos de Usuario SVC 1 __________ rio __________ Usua o Mod __________ SVC 2 __________ io __________ suar oU Mod __________ SVC 1 _______ o _______r od iso M rv e _______ up S _______ SVC 2 _______ o _______ od isor M rv _______ pe Su _______ Tiempos de Sistema Tiempo de CPU del Proceso A = ∑ Tiempos de Usuario + ∑ Tiempos de Sistema ¿Por qué se requiere del modo dual de ejecución de procesos? dual Ejecución de procesos en un sistema Ejecución multitarea requiere de protección. multitarea Ciertas instrucciones de un proceso Ciertas deben ser ejecutadas de una manera “segura”. “segura”. Ejemplos de system calls Ejemplos Control de procesos. Manipulación de archivos. Manipulación de dispositivos. Información de mantenimiento. Comunicaciones. Etc. Ejemplos de system calls Ejemplos Control de procesos. Control End, abort. Load,execute. Create process, terminate process. Get process attributes, set process attributes. set Wait for time. Wait event, signal event. Allocate and free memory. Ejemplos de system calls Ejemplos Manipulación de archivos. Manipulación Create file, delete file. Open, close. Read, write, reposition. Get file attributes, set file attributes. Ejemplos de system calls Manipulación de dispositivos. Manipulación Request device, release device. Read, write, reposition. Get device attributes, set device Get attributes. attributes. Logically attach or detach devices. Ejemplos de system calls Ejemplos Información de mantenimiento. Get time or date, set time or date. Get system data, set system data. Get process, file, or device attributes. Set process, file, or device attributes. System calls Comunicaciones. Comunicaciones. Create, delete communication Create, connection. connection. Send, receive messages. Transfer status information. Attach or detach remote devices. Use of a system call to perform I/O case n trap to system 1 PC User Program 2 . . . read . . . . . . system call n (SVC n) . . . Operating system code Perform 3 I/O return to user 4 Diagrama de estados de un proceso new admitted exit terminated interrupt ready I/O or event completion running Scheduler dispatch waiting I/O or event wait Diagrama de Estados de un proceso con estados suspendidos proceso Ready Admit Ready, suspend Activate Suspend Event Occurs Blocked, suspend Admit Suspend Dispatch Ready Running Time out Event Occurs Activate Blocked Event Wait Exit Unix Process States NT thread states Creación de procesos en UNIX #define TRUE 1 #define #define Null 0 # include <stdio.h> main() { char c, comando [255]; Int status; printf(“Mi process ID es el %dn”, getpid( ) ); printf(“Mi getpid( while (TRUE) { printf(“\nQue proceso deseas lanzar ? “ ); scanf (“%s”, comando); If (fork( ) != 0 ) { /*** El proceso padre ejecuta esta seccion de codigo ****/ printf(“El process ID del – padre --- es %d/n”,getpid( ) ); fflush(stdout); wait(&status); } else { } /*** El process hijo ejecuta esta seccion de codigo ****/ printf(“El Proccess ID del --- hijo --- es %d/n”, getpid( )); printf(“El getpid( fflush(stdout); execve(comando,NULL, NULL); } Creación de procesos en win32 #include <windows.h> #include #include <stdio.h> #include <stdlib.h> #include <process.h> Int main(void) { STARTUPINFO si; PROCESS_INFORMATION pi; PROCESS_INFORMATION //fill out the STARTUPINFO structure with default values... ZeroMemory( &si, sizeof(si)); si.cb = sizeof(si); //start notepad... CreateProcess( NULL, “notepad.exe”, NULL, NULL, FALSE, 0, NULL, NULL, &si, CreateProcess( &pi); &pi); //print some information... printf( “Notepad created as process id 0x%08x and thread id 0x %08x.\n”, printf( pi.dwProcessId, pi.dwProcessId, pi.dwThreadId); CloseHandle(pi.hprocess); CloseHandle(pi.hThread); return 0; } Varios materiales presentados en la sesión, fueron tomados en parte de autores como: Abraham Silberschatz & Peter Baer Galvin, William Stallings e Ing. Jorge Garza. ...
View Full Document

This note was uploaded on 09/30/2011 for the course SISTEMAS O 1 taught by Professor Garza during the Spring '11 term at ITESM.

Ask a homework question - tutors are online