1 Amministrazione dei processi nel sistema operativo Unix (Bach: the Design of the Unix Operating System (cap: 6, 7, 8)

Slides:



Advertisements
Presentazioni simili
Memoria Virtuale in Linux
Advertisements

PROCESS MANAGEMENT: STRUTTURE DATI
Gestione dei processi A. Ferrari.
Programmazione Sicura
Il Sistema Operativo.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Gestione del processore
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
SC che operano su processi
I segnali.
Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi.
Gestione della memoria
Interfaccia del file system
Strutture dei Sistemi Operativi
Posix Capabilities POSIX STANDARD SEZIONE IMPORTANTE.
I processi Concetto di processo Scheduling dei processi
Realizzazione del file system
Gestione della memoria
Processi Concetto di processo Scheduling dei processi
Operating System Concepts
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
Le prestazioni (velocità) di un singolo disco sono limitate dalla tecnologia usata, -per aumentare le prestazioni si può pensare di far operare in parallelo.
Threads: Sistemi Operativi I Corso di Laurea in Ingegneria Informatica
Struttura dei sistemi operativi (panoramica)
I Thread.
1 Gestione del processore Il modello a processi sequenziali.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
Sistemi Operativi GESTIONE DEI PROCESSI.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
1 File System ed Input/Output UNIX Implementazione del File System Caratteristiche del File System Unix/Linux System Call relative al File System Linput/output.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Laface Bach 12.1 Sistemi Operativi Modulo 12: File System Livelli logici per laccesso ai file Organizzazione dei file su disco Organizzazione di.
Modulo 13: System call relative al File System
Profiling Pompeo Faruolo. Profiling Tracciare il profilo del comportamentale di un PROCESSO in funzione delle risorse utilizzate Come il Sistema Operativo.
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Gestionale A.A. 2003/2004.
Struttura di un SO Menu Struttura SO Algoritmo Programma Processo
1 I segnali. 2 Prima un po’ di teoria…... 3 Stati dei processi in UNIX Idle Sleeping Zombified Runnable Running Fork iniziata waitpid Fork terminata.
Sistema Operativo (Software di base)
1 Implementazione del File System nel Sistema Operativo Unix (Bach: the Design of the Unix Operating System (cap: 4, da 5.1 a 5.7, 5.12)
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
Il nucleo del Sistema Operativo
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
1 Esercitazione finale per il corso di Sistemi Operativi (A.A. 2001/2002)
Gestione del processore (Scheduler)
Allievi Elettrici - AA Le funzioni ricorsive in C
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
1 SC che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
1 PROGRAMMAZIONE IN SHELL The Unix Programming Environment Kernigham - Pike.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Chiamate di sistema Introduzione Errori : perror() Chiamate che lavorano su file.
1 File System ed Input/Output UNIX Caratteristiche del FS Unix Implementazione Il file system di Linux Organizzazione dell’ I/O.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Processi e Thread Processi e thread in Windows 2000.
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
1.1 Corso di Sistemi Operativi: Programmazione di Sistema Corso di Laurea in Informatica, Università di Firenze Anno accademico 2010/2011 Prof. Luca Ferrari.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 Processi e Thread Processi e thread in Unix. 2 UNIX/Linux Molte versioni di UNIX –trattiamo le caratteristiche più comuni) Ci riferiamo allo standard.
1 System Call che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
1 System Call ancora Vediamo passo passo come funziona una SC.
Informatica Generale Marzia Buscemi
1 System Call che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
IL NUCLEO Avvio e terminazione dei processi Assegnazione della CPU ai diversi processi Sincronizzazione tra i processi Sincronizzazione dei processi con.
Fabio Garufi - TAADF Tecniche Automatiche di Acquisizione Dati Sistemi operativi.
Transcript della presentazione:

1 Amministrazione dei processi nel sistema operativo Unix (Bach: the Design of the Unix Operating System (cap: 6, 7, 8)

2 Argomenti Processi Strutture dati associate ai processi boot, init, shell Process Scheduling

3 Processi Unix Processo=Programma in esecuzione (+ o -) Creazione di Processi: FORK programma compilatore eseguibile program textdata

4 All’esecuzione: viene caricato il codice in memoria con la exec text regionidata stack(allocato nel kernel) esecuzione user modekernel mode user stackkernel stack system call

5 Strutture dati per la gestione dei processi: Process table (global) User-area (local) Region table (global) Per-process Region table (local)

6 Process table: Array di record di dimensione fissa PID = numero della entry nell’array Sempre in memoria primaria. Ogni entry contiene: puntatori alla u-area e alla per-process region (pregion) dimensioni del processo user-id (uid), pid, ppid stato del processo pending signals prioritá parametri di accounting

7 User-area (U-area) É associata al processo ed é usata solo quando il processo é attivo Contiene: puntatore alla process table entry corrispondente real user id (ruid), effective user id (euid) tty current directory tavola dei file aperti array di gestione delle signals timer fields return values for system calls

8 strutture di gestione dei processi u-area process tableregion table per process region table MAIN MEMORY

9 REGIONI: REGIONE: area contigua dello spazio di indirizzamento di un processo, che viene trattata dal S.O. come oggetto atomico PREGION: per process region table: –text (r) –data (rw)alla region table –stack (rw) –shared. mem (r/w) allocata nella proc. table, nella u-area, o separatamente

10 Region table: region entry: indirizzo fisico in ram leggibile/scrivibile? condivisa? region counter region table dalle Pregion memoria

11 Pregion tables: stack data text process A text data stack process B ceabd

12 Lo sticky bit Obiettivo: velocizzare lo start-up dei programmi comando unix: chmod +t program Un eseguibile con lo sticky bit settato non viene rimosso dalla memoria centrale anche se nessun processo lo sta usando solo il super-user puó settare lo sticky bit rimozione dello sticky bit: open del file in scrittura chmod -t program rm file unmount filesystem of file kernel out of space in swap device

13 set-uid option (bit S) Obiettivo: concedere temporaneamente i privilegi di un utente ad un altro process-id real user ideffective user id possessore del filepossessore del file in esecuzioneprocesso i privilegi di un processo sono quelli dell’utente che ha lanciato il processo

14 set-uid bit (bit S) program PIPPO appartenente all’utente A:..... open(“pluto”, “w”); rwx-r-xr-xApippo -rwx------Apluto pippo.c

15 set-uid bit (bit S) l’utente B esegue un programma P:..... exec(pippo)....open(“pluto”,”w”) rwx-r-xr-xApippo -rwx------Apluto Effective UID (P) = utente B pippo.c P: ERRORE

16 set-uid bit (bit S) settare il bit S: chmod +s pippo -rwsr-xr-xApippo ora, se un processo P esegue pippo: –effective_uid(P) = A Molti programmi unix hanno bisogno del bit S settato per funzionare correttamente: passwd, login,... Ma attenzione alle sh con bit S settato!!! bit s

17 boostrap Unix POWER ON bootstrap program (HW) read boot block (block 0) from disk BOOTVMUNIX read kernel from diskinitialize data structures, mount file systems, set up env. for process 0 Becomes process 0 FORK process 0process 1 (swapper)(init)

18 INIT process INIT : (allows multiuser access) read /etc/inittab (ttytab) for each entry do: fork if child exec(getty) if father exec login shell wait for child to die and fork again

19 Scheduling della CPU round robin con multilevel feedback clock interrupt ogni 50/100 millisecondi azione: seleziona il processo con prioritá piú alta e ready to run in memory in caso di paritá segli il processo che ha aspettato piú tempo se non ci sono processi aspetta fino al prossimo interrupt

20 parametri di scheduling la prioritá’di un processo é funzione della quantitá di CPU che ha giá usato. swapper waiting for disk I/O waiting for buffer waiting for i-node waiting for tty input waiting for tty output waiting for child exit prioritá kernel mode prioritá user mode user level 0 user level user level n non interrompibili

21 parametri di scheduling il processo che va in sleep é messo in una coda di prioritá che dipende dal motivo della sleep ogni quanto di tempo consumato: –cpu_usage(proc) := cpu_usage(proc)+quanto ogni secondo, per ogni processo: –cpu_usage(proc) := cpu_usage(proc) / 2 ogni sec., per ogni proc. ready to run (user mode) –priority := cpu_usage(proc)/2 + base_priority(proc)

22 scheduling Alcuni unix permettono di allocare la CPU in base a classi di utenti o gruppi di utenti: –utenti ROSSI, BIANCHI:50% tempo di CPU –gruppo DOCENTI:30% tempo di CPU –gruppo STUDENTI:20% tempo di CPU unix standard non é adatto per il real time: l’algoritmo di scheduling non garantisce che un dato processo sia selezionato entro un limite di tempo fissato.