Le syscall in Minix. Sistemi Operativi Lez. 27. Corso: Sistemi Operativi Danilo Bruschi A.A. 2010/2011

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Le syscall in Minix. Sistemi Operativi Lez. 27. Corso: Sistemi Operativi Danilo Bruschi A.A. 2010/2011"

Transcript

1 Le syscall in Minix Sistemi Operativi Lez. 27

2 System Call Interfaccia tra le applicazioni ed il sistema operativo, per lo svolgimento di operazioni che coinvolgono dispositivi o strutture di memoria gestite dal sistema operativo Rendono la programmazione più semplice Incrementano la sicurezza del sistema Facilitano la portabilità del codice

3 Posix (Portable Operating system Interface) Standard che definisce l interfaccia utente e software verso applicazioni del sistema operativo Kernel API Comandi e utility L aderenza allo standard Posix è spesso garantita da librerie C che provvedono poi alla effettiva chiamata della syscall POSIX compliant = un sistema che offre le API di Posix

4 Architettura di un SO: minix

5 Organizzazione generale Ogni syscall è contraddistinta da un numero (definito in /usr/include/minix/callnr.h) Questo numero è inserito in un opportuno campo del messaggio che sarà inviato al server

6 Syscall nr.

7 Syscall lato server Ricevuta la richiesta d esecuzione della systema call dall applicazione ogni server ispeziona la struttura dati call_vec per decidere le attività da fare Ogni server dispone di un suo handler specifico per gestire ogni singola system call, questi handler hanno un nome del tipo do_nome syscall ad esempio do_fork

8 Struttura call_vec _PROTOTYPE (int (*call_vec[ncalls]), (void) ) = {! no_sys, /* 0 = unused */! do_pm_exit, /* 1 = exit */! do_fork, /* 2 = fork */! no_sys, /* 3 = read */! no_sys, /* 4 = write */! no_sys, /* 5 = open */! no_sys, /* 6 = close */! do_waitpid, /* 7 = wait */! no_sys, /* 8 = creat */! no_sys, /* 9 = link */! no_sys, /* 10 = unlink */! do_waitpid, /* 11 = waitpid */! no_sys, /* 12 = chdir */! do_time, /* 13 = time */!

9 Struttura generale di un server while( TRUE )! {! get_work(); /* wait for an MM!!!!!!!!!system call */!!!!...! result = (*call_vec [call_nr]) ();! reply(...);! }!

10 get_work () PRIVATE void get_work()! {! /* Wait for the next message and extract useful information from it. */! if (receive(any, &m_in)!= OK)! panic( FILE,"PM receive error", NO_NUM);! who_e = m_in.m_source;/* who sent the message */! if(pm_isokendpt(who_e, &who_p)!= OK)! panic( FILE, "PM got message from invalid endpoint", who_e);! call_nr = m_in.m_type; /* system call number */!

11 Kernel call Il system call handler del server, dopo lo svolgimento di una serie di operazioni determinate dal tipo di system call da gestire provvede a chiamare la kernel call di riferimento attraverso una sendrec a sys_task All interno del codice della kernel call si troverà la chiamata all handler effettivo della system call originale, il cui nome segue le convenzioni già usate per i server

12 Kernel call

13 Overview of System Task (2)

14

15 sys_task

16 Syscall handler PUBLIC int (*call_vec[nr_sys_calls])(message *m_ptr);!! #define map(call_nr, handler) \! {extern int dummy[nr_sys_calls>(unsigned) (call_nr-kernel_call)? 1:-1];} \!! call_vec[(call_nr-kernel_call)] = (handler)!

17 ESECUZIONE DELLA SYSCALL FORK()

18 Descrizione generale 1. L applicazione invia un messaggio FORK al memory manager richiedendo la creazione di un nuovo processo 2. Il memory manager alloca la memoria per il nuovo processo ed informa il system task del nuovo processo inviando un messaggio SYS_FORK 3. Il memory manager informa il file system della creazione del nuovo processo inviandogli un messaggio FORK 4. Al termine della creazione del processo il memory manager invia due messaggi di reply: 1. Al genitore con il PID del figlio 2. Al figlio con valore di ritorno 0 reply message to the parent (e) with a return

19 Schema fork() Interation Networks, by P. Ahton et al.

20 Esecuzione fork() if (fork()!= 0) Viene tradotta dal compilatore in una chiamata alla procedura di libreria lib/syscall/ fork.s (nel caso di eventuali parametri, gli stessi saranno passati via stack)

21 Lib sys/src/lib/syscall/fork.s:.sect.text.extern fork.define _fork.align 2 _fork: jmp fork Che a sua volta richiama la procedura fork(), che è definita nel file sys/src/lib/posix/fork.c

22 libc sys/src/lib/posix/fork.c #include < lib.h> #define fork _fork #include < unistd.h> PUBLIC pid_t fork() message m; return(_syscall(pm, FORK, &m)); Che richiama la funzione _syscall, indicando come destinatario dell attività richiesta il processo PM

23 _syscall #include < lib.h> PUBLIC int _syscall(who, syscallnr, msgptr) int who; int syscallnr; register message *msgptr; int status; msgptr->m_type = syscallnr; status = _sendrec(who, msgptr); if (status!= 0) { /* 'sendrec' itself failed. */ /* XXX - strerror doesn't know all the codes */ msgptr->m_type = status; } if (msgptr->m_type < 0) { errno = -msgptr->m_type; return(-1); } return(msgptr->m_type);

24 _sendrec /sys/src/lib/i386/rts/_sendrec.c sendrec: push ebp mov ebp, esp push ebx mov eax, SRCDEST(ebp) mov ebx, MESSAGE(ebp) mov ecx, BOTH int SYSVEC pop ebx pop ebp ret! eax = dest-src! ebx = message pointer! _sendrec(srcdest, ptr)! trap to the kernel

25 _sendrec lib/i386/rts/ _sendrec sect.text;.sect.rom;.sect.data;.sect.bss 301.define send, receive, sendrec 302! See../h/com.h for C definitions 303 SEND = RECEIVE = BOTH = SYSVEC = SRCDEST = MESSAGE = 12

26 _s_call: _p_s_call: cld! set direction flag to a known value sub esp, 6*4! skip RETADR, eax, ecx, edx, ebx, est push ebp! stack already points into proc table push esi push edi o16 push ds o16 push es o16 push fs o16 push gs mov dx, ss mov ds, dx mov es, dx incb (_k_reenter) mov esi, esp! assumes P_STACKBASE == 0 mov esp, k_stktop xor ebp, ebp! for stacktrace! end of inline save! now set up parameters for sys_call() push ebx! pointer to user message push eax! src/dest push ecx! SEND/RECEIVE/BOTH call _sys_call! sys_call(function, src_dest, m_ptr)

27

28

29 minisend Prepara il messaggio per PM, che prima o poi lo preleverà attraverso una receive Nel file include/minix/callnr.h, alla fork() è assegnato il numero 2 : #define FORK 2 Nel file pm/table.c, la struttura dati call_vec associa alla syscall fork() la procedura: do_fork, /* 2 = fork */

30 PM main.c 0047 /*====================================================================*! * main *! 00049*=====================================================================*/! PUBLIC int main()! {! /* Main routine of the process manager. */! int result, s, proc_nr;! struct mproc *rmp;! sigset_t sigset;! 00056! pm_init(); /* initialize process manager tables */! 00058! /* This is PM's main loop- get work and do it, forever and forever. */! while (TRUE) {! get_work(); /* wait for an PM system call */! 00062!

31 mproc EXTERN struct mproc {!! struct mem_map mp_seg[nr_local_segs]; /* points to text, data, stack */! char mp_exitstatus; /* storage for status when process exits */! char mp_sigstatus; /* storage for signal # for killed procs */! pid_t mp_pid; /* process id */! int mp_endpoint; /* kernel endpoint id */! pid_t mp_procgrp; /* pid of process group (used for signals) */! pid_t mp_wpid; /* pid this process is waiting for */! int mp_parent; /* index of parent process */! 00021!! /* Child user and system times. Accounting done on child exit. */! clock_t mp_child_utime; /* cumulative user time of children */! clock_t mp_child_stime; /* cumulative sys time of children */! 00025!! /* Real and effective uids and gids. */! uid_t mp_realuid; /* process' real uid */! uid_t mp_effuid; /* process' effective uid */! gid_t mp_realgid; /* process' real gid */! gid_t mp_effgid; /* process' effective gid */!

32 mproc /* File identification for sharing. */! ino_t mp_ino; /* inode number of file */! dev_t mp_dev; /* device number of file system */! time_t mp_ctime; /* inode changed time */! 00036! /* Signal handling information. */! sigset_t mp_ignore; sigset_t mp_catch; /* 1 means ignore the signal, 0 means don't */! /* 1 means catch the signal, 0 means don't */! sigset_t mp_sig2mess; /* 1 means transform into notify message */! sigset_t mp_sigmask; /* signals to be blocked */! sigset_t mp_sigmask2; /* saved copy of mp_sigmask */! sigset_t mp_sigpending; /* pending signals to be handled */! struct sigaction mp_sigact[_nsig + 1]; /* as in sigaction(2) */! vir_bytes mp_sigreturn; /* address of C library sigreturn function */! struct timer mp_timer; /* watchdog timer for alarm(2) */! 00047! /* Backwards compatibility for signals. */! sighandler_t mp_func; /* all sigs vectored to a single user fcn */! 00050! unsigned mp_flags; /* flag bits */! vir_bytes mp_procargs; /* ptr to proc's initial stack arguments */! struct mproc *mp_swapq; /* queue of procs waiting to be swapped in */! message mp_reply; /* reply message to be sent to one */! 00055! /* Scheduling priority. */! signed int mp_nice; /* nice is PRIO_MIN..PRIO_MAX, standard 0. */! 00058! char mp_name[proc_name_len]; /* process name */! } mproc[nr_procs];!

33 priv

34 pm/do_fork() Legge in input il valore di mp che punta al PCB (contenuto in PM) del processo che ha eseguito la fork() Verifica se ci sono posizioni libere nella tabella dei processi mproc! Determina la quantità di memoria necessaria per la generazione del processo figlio (vanno replicati solo segmento Stack e dati) Copia il PCB del padre nella posizione libera di mproc! Assegna al processo figlio un nuovo Pid! Invia messaggi a systask e FS

35 Pm/do_fork /*======================================================================*! * do_fork *! *=====================================================================*/! PUBLIC int do_fork()! {! /* The process pointed to by 'mp' has forked. Create a child process. */! register struct mproc *rmp; register struct mproc *rmc; /* pointer to parent */! /* pointer to child */! int child_nr, s;! phys_clicks prog_clicks, child_base;! phys_bytes prog_bytes, parent_abs, child_abs; /* Intel only */! pid_t new_pid;! static int next_child;! int n = 0, r;!

36 Caricamento PCB figlio do {! next_child = (next_child+1) % NR_PROCS;! n++;! } while((mproc[next_child].mp_flags & IN_USE) && n <= NR_PROCS);! if(n > NR_PROCS)! 00078! panic( FILE,"do_fork finds wrong child slot", next_child);! 00082! rmc = &mproc[next_child];! /* Set up the child and its memory map; copy its 'mproc' slot from parent. */! child_nr = (int)(rmc - mproc); /* slot number of the child */! procs_in_use++;! *rmc = *rmp; /* copy parent's process slot to child's */! rmc->mp_parent = who_p; /* record child's parent */! /* inherit only these flags */! rmc->mp_flags &= (IN_USE SEPARATE PRIV_PROC DONT_SWAP);! rmc->mp_child_utime = 0 /* reset administration */! rmc->mp_child_stime = 0; /* reset administration */

37 Messaggi a sys_task e FS /* Tell kernel and file system about the (now successful) FORK. */! if(! (r=sys_fork(who_e, child_nr, &rmc->mp_endpoint))!= OK)!! {! panic( FILE,"do_fork can't sys_fork", r);! }!! tell_fs(fork, who_e, rmc->mp_endpoint, rmc->mp_pid);!

38 sys_fork() #include "syslib.h"! 00002! PUBLIC int sys_fork(parent, child, child_endpoint)! int parent; /* process doing the fork */! int child; /* which proc has been created by the fork */! int *child_endpoint;! {! /* A process has forked. Tell the kernel. */! 00009! message m;! int r;! 00012! m.pr_endpt = parent;! m.pr_slot = child;! r = _taskcall(systask, SYS_FORK, &m);! *child_endpoint = m.pr_endpt;! return r;! }!

39 sys/src/lib/syslib/taskcall.c: _taskcall #include < lib.h> #include < minix/syslib.h> PUBLIC int _taskcall(who, syscallnr, msgptr) int who; int syscallnr; register message *msgptr; int status; msgptr->m_type = syscallnr; status = _sendrec(who, msgptr); if (status!= 0) return(status); return(msgptr->m_type);

40 sys_task /*==========================================================================*! 0006* sys_task *! *========================================================================*/! PUBLIC void sys_task()! {! /* Main entry point of sys_task. Get the message and dispatch on type. */! static message m;! register int result;! register struct proc *caller_ptr;! unsigned int call_nr;! int s;! 00070! /* Initialize the system task. */! initialize();! 00073! while (TRUE) {! /* Get work. Block and wait until a request message arrives. */! receive(any, &m);! call_nr = (unsigned) m.m_type - KERNEL_CALL;! who_e = m.m_source;! okendpt(who_e, &who_p);! caller_ptr = proc_addr(who_p);!

41 system task }! else {! result = (*call_vec[call_nr])(&m); /* handle the system call */! }! 00097! /* Send a reply, unless inhibited by a handler function. Use the kernel! * function lock_send() to prevent a system call trap. The destination! * is known to be blocked waiting for a message.! */! if (result!= EDONTREPLY) {! m.m_type = result; /* report status of call */! if (OK!= (s=lock_send(m.m_source, &m))) {! kprintf("system, reply to %d failed: %d\n", m.m_source, s);! }! }!

42 do_fork /*=========================================================================*! * do_fork *! *========================================================================*/! PUBLIC int do_fork(m_ptr)! register message *m_ptr; /* pointer to request message */! {! /* Handle sys_fork(). PR_ENDPT has forked. The child is PR_SLOT. */! register struct proc *rpc; /* child process pointer */! struct proc *rpp; /* parent process pointer */! int i, gen;! int p_proc;! ! old_ldt_sel = rpc->p_ldt_sel; /* backup local descriptors */! 44 *rpc = *rpp; /* copy 'proc' struct */! 45.!

43 do-fork rpc->p_rts_flags = NO_MAP; /* inhibit process from running */! rpc->p_rts_flags &= ~(SIGNALED SIG_PENDING P_STOP);! sigemptyset(&rpc->p_pending);! 00058! rpc->p_reg.retreg = 0; /* child sees pid = 0 to know it is child */! rpc->p_user_time = 0; /* set all the accounting times to 0 */! rpc->p_sys_time = 0;! 00062! /* Parent and child have to share the quantum that the forked process had,! * so that queued processes do not have to wait longer because of the fork.! * If the time left is odd, the child gets an extra tick.! */! rpc->p_ticks_left = (rpc->p_ticks_left + 1) / 2;! rpp->p_ticks_left = rpp->p_ticks_left / 2;!

44 e alla fine do_fork restituisce il controllo a: sys_task, che invia una send a taskcall, che terminando restituisce il controllo a sys_fork che terminando rientra su: pm/do_fork che invia una reply al processo figlio, per rientrare poi su: PM (main.c) che provvede ad inviare una reply all applicazione che ha originariamente richiesto la fork

Sistemi Operativi. Bruschi Martignoni Monga. Send/Receive mini send Enqueue e dequeue mini receive mini notify. System call in MINIX

Sistemi Operativi. Bruschi Martignoni Monga. Send/Receive mini send Enqueue e dequeue mini receive mini notify. System call in MINIX 1 Mattia Lezione XIX: Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo

Dettagli

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia 1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Messaggi in Minix. Sistemi operativi Lez. 10. Corso: Sistemi Operativi Danilo Bruschi A.A. 2006/2007

Messaggi in Minix. Sistemi operativi Lez. 10. Corso: Sistemi Operativi Danilo Bruschi A.A. 2006/2007 Messaggi in Minix Sistemi operativi Lez. 10 1 Comunicare in Minix I processi in Minix comunicano tra di loro attraverso scambio di messaggi I processi possono comunicare solo con processi al proprio livello

Dettagli

IPC in Minix. Sistemi operativi Lez. 17-18. Corso: Sistemi Operativi Danilo Bruschi A.A. 2009/2010

IPC in Minix. Sistemi operativi Lez. 17-18. Corso: Sistemi Operativi Danilo Bruschi A.A. 2009/2010 IPC in Minix Sistemi operativi Lez. 17-18 1 Comunicare in Minix I processi in Minix comunicano tra di loro attraverso scambio di messaggi I processi possono comunicare solo con processi al proprio livello

Dettagli

La gestione dei processi in Minix

La gestione dei processi in Minix La gestione dei processi in Minix Sistemi Operativi Lez. 28 Scheduling Round robin su 16 code di priorità Quando un processo viene bloccato senza aver esaurito il suo quanto di tempo, una volta risvegliato,

Dettagli

Sistemi Operativi. Bruschi Martignoni Monga. La gestione. MINIX Architettura I device driver Block device. Memory driver Implementazione

Sistemi Operativi. Bruschi Martignoni Monga. La gestione. MINIX Architettura I device driver Block device. Memory driver Implementazione 1 Mattia Lezione XXVII: Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso

Dettagli

Sistemi Operativi 1. Mattia Monga. 11 aprile Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi 1. Mattia Monga. 11 aprile Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it delle 11 aprile 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5

Dettagli

System Calls per la Gestione dei Processi

System Calls per la Gestione dei Processi System Calls per la Gestione dei Processi Domenico Cotroneo Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II Roadmap Process Context Identificativi getpid() getppid()

Dettagli

1 Modifiche al kernel di MINIX 3.1.2a

1 Modifiche al kernel di MINIX 3.1.2a 1 Modifiche al kernel di MINIX 3.1.2a 1.1 Aggiunta di una chiamata di sistema L obiettivo è aggiungere una chiamata di sistema foo gestita dal server di MINIX, cioè il processo identificato dalla macro

Dettagli

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3 Marzo-Giugno 2008 matricole congrue 0 mod 3 Controllo dei processi - I Controllo dei processi Creazione di nuovi processi Esecuzione di programmi Processo di terminazione Altro 2 1 Identificatori di processi

Dettagli

Chiamate di sistema per la Gestione dei processi in POSIX. E.Mumolo, DEEI mumolo@units.it

Chiamate di sistema per la Gestione dei processi in POSIX. E.Mumolo, DEEI mumolo@units.it Chiamate di sistema per la Gestione dei processi in POSIX E.Mumolo, DEEI mumolo@units.it Process id ed altri identificatori pid_t getpid(); // Process id del processo chiamante pid_t getppid(); // Process

Dettagli

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix. I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo

Dettagli

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 modulo 3

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 modulo 3 Marzo-Giugno 2008 Matricole congrue 0 modulo 3 Segnali: Interrupt software per la gestione di eventi asincroni Concetto di segnale Un segnale è un interrupt software Un segnale può essere generato da un

Dettagli

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2 Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:

Dettagli

Sistemi Operativi. Esercitazione 2 Compilazione, Makefile e Processi

Sistemi Operativi. Esercitazione 2 Compilazione, Makefile e Processi Sistemi Operativi Esercitazione 2 Compilazione, Makefile e Processi Percorso Compilazione programmi in c Makefiles Processi definizione gestione creazione Compilazione di programmi in C Compilazione e

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi Laboratorio di Sistemi Operativi LAB2 Installazione Linux e relativi ambienti di lavoro 2002/2003 Pagani - Trentini Slide 1 Agenda Panoramica e storia di Linux Installazione Linux Installazione strumenti

Dettagli

Assembly. Modello x86

Assembly. Modello x86 Assembly Modello x86 1 Il microprocessore Un MICROPROCESSORE è un circuito integrato dotato di una struttura circuitale in grado di attuare un prefissato SET di ISTRUZIONI 2 Caratteristiche del microprocessore

Dettagli

Capitolo 5 - Funzioni

Capitolo 5 - Funzioni Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente

Dettagli

System call per la gestione di processi

System call per la gestione di processi System call per la gestione di processi Chiamate di sistema per creazione di processi: fork() sostituzione di codice e dati: exec...() terminazione: exit() sospensione in attesa della terminazione di figli:

Dettagli

Directory. Le directory unix sono file.

Directory. Le directory unix sono file. Le directory unix sono file. Directory Molte system call per i file ordinari possono essere utilizzate per le directory. E.g. open, read, fstat, close. Tuttavia le directory non possono essere create con

Dettagli

Sistemi Operativi. Lezione 3 I Processi

Sistemi Operativi. Lezione 3 I Processi Sistemi Operativi Lezione 3 I Processi Processi Con il termine processo si denota l esecuzione di un programma (sequenza di istruzioni) nell ambito di un determinato ambiente esecutivo caratterizzato da:

Dettagli

POSIX - Gestione dei Segnali. E.Mumolo, DEEI mumolo@units.it

POSIX - Gestione dei Segnali. E.Mumolo, DEEI mumolo@units.it POSIX - Gestione dei Segnali E.Mumolo, DEEI mumolo@units.it Segnali in POSIX Segnali in Posix Modalità di notifiche relative a vari eventi asincroni I signal interrompono un processo e possono o meno essere

Dettagli

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Sistemi Operativi 1. Mattia Monga. 11 marzo Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia 1 Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it e 11 marzo 2008 1 c 2008 M. Monga. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Hardware di un Computer

Hardware di un Computer Hardware di un Computer Monitor Mouse Tastiera Printer Disk CPU Graphics Adapter USB Controller Parallel Port Disk Controller BUS Memoria RAM Memoria ROM (BIOS) DMA CPU esegue istruzioni, effettua calcoli,

Dettagli

Blocchi funzione: FbModbusAsciiMs

Blocchi funzione: FbModbusAsciiMs Pagina 1 di 6 ELSIST Srl, www.elsist.it Blocchi funzione MNL041Q000 FbModbusAsciiMs Questo blocco funzione permette lo scambio di dati tra due sistemi, uno master ed uno slave, utilizzando una connessione

Dettagli

Il sistema operativo LINUX Indice

Il sistema operativo LINUX Indice Il sistema operativo LINUX Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica Processo Un processo è un programma in esecuzione:

Dettagli

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

Modello dei processi. Riedizione delle slide della Prof. Di Stefano Modello dei processi Riedizione delle slide della Prof. Di Stefano 1 Processi Modello di Processi asincroni comunicanti Process Scheduling Operazioni sui Processi Cooperazione tra Processi Interprocess

Dettagli

I processi: concetti di base, context switch e scheduling

I processi: concetti di base, context switch e scheduling Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica Reti e sistemi operativi I processi: concetti di base, context switch e scheduling Processo: definizione Processo (o Job): Entità attiva

Dettagli

Capitolo 3 -- Silberschatz

Capitolo 3 -- Silberschatz Processi Capitolo 3 -- Silberschatz Concetto di processo Un SO esegue una varietà di attività: Sistemi batch job Sistemi time-sharing programmi utenti o task Nel libro i termini job e processo sono usati

Dettagli

SISTEMI OPERATIVI. I processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. I processi. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) I processi Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Il concetto di processo

Dettagli

Introduzione al Multithreading

Introduzione al Multithreading Introduzione al Multithreading Claudia Calidonna Istituto di di Cibernetica C.N.R. Argomenti principali Parleremo di : Processi & Threads Operazioni sui threads ed eventuali confronti tra operazioni sui

Dettagli

Processi - II. Franco Maria Nardini

Processi - II. Franco Maria Nardini Processi - II Franco Maria Nardini Processi Programmi in esecuzione in memoria sono chiamati processi. Caricati in memoria da una delle sei funzioni exec(3). Ogni processo ha un identificatore univoco

Dettagli

Componenti di un sistema operativo

Componenti di un sistema operativo Componenti di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Componenti di un S.O. Gestione dei processi Gestione della memoria primaria Gestione della memoria secondaria

Dettagli

I Processi nel SO UNIX

I Processi nel SO UNIX I Processi nel SO UNIX 1 Processi UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice

Dettagli

Controllo dei Processi. M. R. Guarracino - Primitive di Controllo dei Processi

Controllo dei Processi. M. R. Guarracino - Primitive di Controllo dei Processi Controllo dei Processi Introduzione Come possiamo creare nuovi processi? Come possiamo eseguire un programma? Come possiamo terminare un processo? Introduzione Unix fornisce le primitive per la creazione

Dettagli

A.A. 2006/2007 Laurea di Ingegneria Informatica. Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio

A.A. 2006/2007 Laurea di Ingegneria Informatica. Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio A.A. 2006/2007 Laurea di Ingegneria Informatica Fondamenti di C++ Horstmann Capitolo 3: Oggetti Revisione Prof. M. Angelaccio Obbiettivi Acquisire familiarità con la nozione di oggetto Apprendere le proprietà

Dettagli

System Call per la gestione dei semafori in Linux. Semafori: modello concettuale. Creazione ed inizializzazione di un semaforo

System Call per la gestione dei semafori in Linux. Semafori: modello concettuale. Creazione ed inizializzazione di un semaforo System Call per la gestione dei semafori in Linux Domenico Cotroneo Dipartimento di Informatica e Sistemistica Semafori: modello concettuale Processore D C B (sq)coda proc.sospesi s.count=1 semaforo A

Dettagli

ACSO Programmazione di Sistema e Concorrente

ACSO Programmazione di Sistema e Concorrente ACSO Programmazione di Sistema e Concorrente P2 Modello Thread 2/12/2015 programma e parallelismo il tipo di parallelismo dipende dal grado di cooperazione (scambio di informazione) necessario tra attività

Dettagli

In generale può essere utile che i due processi eseguano del codice diverso

In generale può essere utile che i due processi eseguano del codice diverso System call FORK P fork() ha l aspetto di una funzione C, in realtà è una system call, una chiamata al sistema operativo fork() P P Il processo P' è una copia di P esegue lo stesso codice e possiede una

Dettagli

Programmazione multiprocesso

Programmazione multiprocesso DTI / ISIN / Titolo principale della presentazione 1 Programmazione multiprocesso Amos Brocco, Ricercatore, DTI / ISIN 20 febbraio 2012 2 Processi Cos'è un processo? Un programma in esecuzione Spazio di

Dettagli

Funzioni di libreria. user programs libraries. process control subsystem. character block device drivers. system call interface.

Funzioni di libreria. user programs libraries. process control subsystem. character block device drivers. system call interface. 1 Funzioni di libreria user Level kernel Level trap user programs libraries system call interface file subsystem buffer cache character block device drivers process control subsystem hardware control inter-process

Dettagli

Quinta Esercitazione. Principali primitive di accesso ai File

Quinta Esercitazione. Principali primitive di accesso ai File Esempio: processi padre e figlio condividono di file aperti PRIMA della creazione Quinta Esercitazione Gestione File-System Segnali processo padre fork() Sistema tabella dei file attivi i-node Eugenio

Dettagli

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni Anno Accademico 2011/2012 Segnali: Interrupt software per la gestione di eventi asincroni Concetto di segnale Un segnale è un interrupt software Un segnale può essere generato da un processo utente o dal

Dettagli

Programmazione di sistema in Linux: System Call per i Segnali. E. Mumolo

Programmazione di sistema in Linux: System Call per i Segnali. E. Mumolo Programmazione di sistema in Linux: System Call per i Segnali E. Mumolo Eventi asincroni: segnali I segnali permettono la gestione di eventi asincroni che interrompono il normale funzionamento di un processo

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 20 Giovedì 22-12-2016 Comunicazione: pipe In Unix, processi possono comunicare

Dettagli

Relazione tra thread e processi

Relazione tra thread e processi I Thread POSIX Relazione tra modello a processi e a thread Creazione di un thread Attesa Distacco Terminazione Ricerca e confronto Inizializzazione dinamica Relazione tra thread e processi Nel modello

Dettagli

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema AXO Architetture dei Calcolatori e Sistema Operativo programmazione di sistema Il sistema operativo Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel

Dettagli

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività:

Concetto di processo. Processi. Immagine in memoria di un processo. Stati di un processo. Un SO esegue una varietà di attività: Impossibile visualizzare l'immagine. Processi Concetto di processo Un SO esegue una varietà di attività: Sistemi batch job Sistemi time-sharing programmi utenti o task Nel libro i termini job e processo

Dettagli

Antifork Research, Inc. HACKERS RESEARCH VIRTUAL LAB. Shellcode Advanced. Angelo Dell'Aera <buffer@antifork.org> Security Date 2004 Ancona 29/04/2004

Antifork Research, Inc. HACKERS RESEARCH VIRTUAL LAB. Shellcode Advanced. Angelo Dell'Aera <buffer@antifork.org> Security Date 2004 Ancona 29/04/2004 Antifork Research, Inc. HACKERS RESEARCH VIRTUAL LAB Shellcode Advanced Angelo Dell'Aera Security Date 2004 Ancona 29/04/2004 Esplorare mondi nuovi... In questa presentrazione analizzeremo

Dettagli

2. Nucleo del sistema operativo (la gestione dei processi)

2. Nucleo del sistema operativo (la gestione dei processi) Architettura del sistema operativo Struttura interna del sistema operativo Linux shell Programmi utente Modo utente 2. Nucleo del sistema operativo (la gestione dei processi) - 31 marzo 2008 - Interfaccia

Dettagli

Processi e Sincronizzazione. Laboratorio Software 2008-2009 C. Brandolese M. Grotto

Processi e Sincronizzazione. Laboratorio Software 2008-2009 C. Brandolese M. Grotto Processi e Sincronizzazione C. Brandolese M. Grotto Sommario 1. Processi Concetti fondamentali Stati in GNU/Linux 2. Creazione Descrizione Creazione con system() Creazione con fork() Effetto di fork()

Dettagli

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive

Assembler di Spim. Assembler di SPIM. Struttura di un programma assembler. Direttive Assembler di Spim Assembler di SPIM Il programma è organizzato in linee Ogni linea può contenere un commento che parte dal carattere # e si estende fino alla fine della linea Ogni linea che non sia bianca

Dettagli

Famiglia dei processori INTEL

Famiglia dei processori INTEL Famiglia dei processori INTEL 1975 2002 8080-8086 - 80286-80386 - 80486 - Pentium - Pentium II-III-IV - Itanium Compatibilità del SW (assemby) 8086 80286 80386 80486 Pentium Pentium III Perché studiare

Dettagli

Corso di Programmazione Concorrente Processi. Valter Crescenzi

Corso di Programmazione Concorrente Processi. Valter Crescenzi Corso di Programmazione Concorrente Processi Valter Crescenzi http://crescenzi.inf.uniroma3.it Sommario Processi vs Thread Creazione e terminazione di processi chiamata di sistema fork() chiamata di sistema

Dettagli

2. Nucleo del sistema operativo (la gestione dei processi)

2. Nucleo del sistema operativo (la gestione dei processi) Struttura interna del sistema operativo Linux 2. Nucleo del sistema operativo (la gestione dei processi) Architettura (struttura) del sistema operativo shell Programmi utente Modo utente Interfaccia delle

Dettagli

Introduzione agli interrupt

Introduzione agli interrupt Corso di laurea in Ingegneria dell Informazione Indirizzo Informatica Reti e sistemi operativi Introduzione agli interrupt Le interruzioni (interrupt) I sistemi operativi attuali si basano sugli interrupt

Dettagli

eseguire comandi dati dall'utente, utilizzando una macchina reale, di livello inferiore,

eseguire comandi dati dall'utente, utilizzando una macchina reale, di livello inferiore, La programmazione di sistema Introduzione ai sistemi operativi multiprocesso Primitive per la gestione dei processi http://home.dei.polimi.it/silvano/acso.htm Il sistema ste operativo Il Sistema Operativo

Dettagli

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O Gestione e organizzazione dei dischi COMPITI

Dettagli

Esercizio sulla gestione di file in Unix

Esercizio sulla gestione di file in Unix Esercizio sulla gestione di file in Unix 1 Esercizio Si vuole realizzare un programma C che, utilizzando le system call di Unix, realizzi uno schema di comunicazione tra due processi (padre e figlio) mediante

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

Struttura interna del sistema operativo Linux

Struttura interna del sistema operativo Linux Struttura interna del sistema operativo Linux 5. I device driver A cura di: Anna Antola Giuseppe Pozzi DEI, Politecnico di Milano anna.antola/giuseppe.pozzi@polimi.it -versione del 30 marzo 2004-1-04.-04

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

Sistemi Operativi. Introduzione all architettura IA-32 Lez. 16. Corso: Sistemi Operativi Danilo Bruschi A.A. 2010/2011

Sistemi Operativi. Introduzione all architettura IA-32 Lez. 16. Corso: Sistemi Operativi Danilo Bruschi A.A. 2010/2011 Sistemi Operativi Introduzione all architettura IA-32 Lez. 16 1 Microprocessori Intel Nel 1979 Intel introduce la famiglia dei microprocessore 8086 8086, 8087, 8088, e 80186 Processori a 16-bit con registri

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Introduzione ai Sistemi Operativi

Introduzione ai Sistemi Operativi Introduzione ai Sistemi Operativi Scopo di questa parte del corso e : introdurre i concetti principali dei sistemi operativi, identificare i requisiti hardware necessari alla gestione dei processi e del

Dettagli

Sistemi Operativi. Lezione 13 Il context switch in MINIX. Corso: Sistemi Operativi Danilo Bruschi A.A. 2009/2010

Sistemi Operativi. Lezione 13 Il context switch in MINIX. Corso: Sistemi Operativi Danilo Bruschi A.A. 2009/2010 Sistemi Operativi Lezione 13 Il context switch in MINIX Context switch Possiamo ora predisporre una routine per il context switch tra processi, che possiamo supporre sia risvegliata da un interrupt di

Dettagli

Il sistema operativo LINUX Semafori. Semaforo. Sommario. Sommario. Uso delle pipe. Gestione di semafori tramite pipe. Sistemi operativi Modulo II

Il sistema operativo LINUX Semafori. Semaforo. Sommario. Sommario. Uso delle pipe. Gestione di semafori tramite pipe. Sistemi operativi Modulo II Il sistema operativo LINUX Semafori Semaforo Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica Un semaforo è una variabile

Dettagli

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche

5. I device driver. Device driver - gestori delle periferiche. Struttura interna del sistema operativo Linux. Tipi di periferiche. Tipi di periferiche Device driver - gestori delle periferiche Struttura interna del sistema operativo Linux Sono moduli software che realizzano l interfacciamento e la gestione dei dispositivi periferici Interagiscono con

Dettagli

Sincronizzazione tra processi UNIX: i segnali. Sincronizzazione tra processi

Sincronizzazione tra processi UNIX: i segnali. Sincronizzazione tra processi Sincronizzazione tra processi UNIX: i segnali Sincronizzazione tra processi Processi interagenti possono avere bisogno di meccanismi di sincronizzazione Ad esempio, abbiamo appena visto il caso di processi

Dettagli

Capitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved.

Capitolo 6 - Array. Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Capitolo 6 - Array Array Array Gruppo di locazioni di memoria consecutive Stesso nome e tipo Per riferirsi a un elemento, specificare Nome dell array Posizione Formato: arrayname[ position number ] Primo

Dettagli

Modello della memoria in Unix. Unix: Gestione della Memoria. Gestione della memoria in UNIX - fondamenti. Gestione della memoria in UNIX - storia

Modello della memoria in Unix. Unix: Gestione della Memoria. Gestione della memoria in UNIX - fondamenti. Gestione della memoria in UNIX - storia Modello della memoria in Unix I processi Unix lavorano su uno spazio di indirizzamento virtuale Es. 0,..., 2 32 1 su indirizzi a 32bit Ogni processo ha uno spazio indirizzi separato per i segmenti text,

Dettagli

I Processi nel Sistema Operativo Unix

I Processi nel Sistema Operativo Unix I Processi nel Sistema Operativo Unix Processi Unix Unix è un sistema operativo multiprogrammato a divisione di tempo: l unità di computazione è il processo. Caratteristiche del processo Unix: processo

Dettagli

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini [http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a. 2005-2006 Docente: H. Muccini Lecture 15: - Macro - Eccezioni e interruzioni

Dettagli

Sistemi Operativi. Lezione 4 I processi: implementazioni

Sistemi Operativi. Lezione 4 I processi: implementazioni Lezione 4 I processi: implementazioni UNIX Creazione di un processo Assegna al processo un identificatore univoco Alloca spazio per il processo Inizializza il PCB Predisponi gli opportuni agganci con strutture

Dettagli

REGISTRATION GUIDE TO RESHELL SOFTWARE

REGISTRATION GUIDE TO RESHELL SOFTWARE REGISTRATION GUIDE TO RESHELL SOFTWARE INDEX: 1. GENERAL INFORMATION 2. REGISTRATION GUIDE 1. GENERAL INFORMATION This guide contains the correct procedure for entering the software page http://software.roenest.com/

Dettagli

Processi. Laboratorio Software 2008-2009 C. Brandolese

Processi. Laboratorio Software 2008-2009 C. Brandolese Processi Laboratorio Software 2008-2009 Introduzione I calcolatori svolgono operazioni simultaneamente Esempio Compilazione di un programma Invio di un file ad una stampante Visualizzazione di una pagina

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 20 Martedì 16-12-2014 1 System call per la gestione dei processi Creazione

Dettagli

Sistemi Operativi Teledidattico

Sistemi Operativi Teledidattico Sistemi Operativi Teledidattico Anno 2002 3a esercitazione 5/10/2002 Paolo Torroni processi fork (creazione di un figlio) exec (sostituzione di codice del programma in esecuzione) wait (attesa della terminazione

Dettagli

strutturare dati e codice

strutturare dati e codice Puntatori e passaggio parametri strutturare dati e codice Tipo di dati int * Pi ; Op. dereferenziazione j = *Pi ; Op. indirizzo Pi = &i ; By value int f(int i) ; a = f(b) ; By address int f(int * Pi) ;

Dettagli

CREAZIONE PROCESSI IN UNIX 20

CREAZIONE PROCESSI IN UNIX 20 CREAZIONE PROCESSI IN UNIX 20 STRUTTURE DATI PER PROCESSI Un processo puo' essere in escuzione in 2 modi: kernel e utente. Un processo ha almeno 3 regioni: codice, dati e stack Lo stack è allocato dinamicamente.

Dettagli

Interazione con il DOS e il BIOS

Interazione con il DOS e il BIOS Interazione con il DOS e il BIOS ARGOMENTI PRESENTATI IN QUESTI LUCIDI Routine di BIOS e DOS Due modalità diverse di restituire il controllo al DOS L interazione con le routine del DOS: l interrupt 21H

Dettagli

Allocazione dinamica della memoria

Allocazione dinamica della memoria Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Tipi di memoria dati Nella macchina astratta C esistono tre tipi di memoria per allocare

Dettagli

Sincronizzazione tra processi. Sincronizzazione tra processi. segnali. Segnali UNIX

Sincronizzazione tra processi. Sincronizzazione tra processi. segnali. Segnali UNIX Sincronizzazione tra processi Sincronizzazione tra processi UNIX: i segnali Processi interagenti possono avere bisogno di meccanismi di sincronizzazione Ad esempio, abbiamo appena visto il caso di processi

Dettagli

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX

Processi UNIX. I Processi nel SO UNIX. Gerarchie di processi UNIX. Modello di processo in UNIX Processi UNIX I Processi nel SO UNIX UNIX è un sistema operativo multiprogrammato a divisione di tempo: unità di computazione è il processo Caratteristiche del processo UNIX: processo pesante con codice

Dettagli

Gestione dei Processi

Gestione dei Processi Gestione dei Processi Processo Un sistema operativo esegue una varietà di programmi: Sistemi batch lavori o jobs Sistemi in time-sharing programmi utente o tasks I termini job e process sono usati quasi

Dettagli

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009

Processi in Linux. Igino Corona igino.corona@diee.unica.it. 20 Ottobre 2009 Sistemi Operativi Processi in Linux Igino Corona igino.corona@diee.unica.it 20 Ottobre 2009 Contenuti della lezione Come funzionano i programmi in Linux? Schema base di esecuzione di un programma Modalità

Dettagli

Controllo dei Processi 1

Controllo dei Processi 1 Controllo dei Processi 1 I processi Nei sistemi Unix/Linux ogni processo ne può generare altri. Il processo che li genera è detto processo padre (parent process), mentre i processi generati sono detti

Dettagli

I/O in Minix3. Sistemi Operativi Lez. 15

I/O in Minix3. Sistemi Operativi Lez. 15 I/O in Minix3 Sistemi Operativi Lez. 15 Architettura di riferimento Device Driver Per ogni classe di dispositivo di I/O (HD, floppy, RAM disk) esiste un apposito driver che condivide un insieme di routine

Dettagli

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3 Marzo-Giugno 2008 matricole congrue 0 mod 3 Funzioni wait e waitpid quando un processo termina il kernel manda al padre il segnale SIGCHLD Controllo dei processi (2) il padre può ignorare il segnale (default)

Dettagli

I SISTEMI OPERATIVI (1)

I SISTEMI OPERATIVI (1) I SISTEMI OPERATIVI (1) 1 un computer può essere pensato come una stratificazione di macchine virtuali, ciascuna delle quali mette a disposizione alcuni servizi, che sono utilizzabili mediante chiamate

Dettagli

Sistema di protezione

Sistema di protezione Sistema di protezione - Un processo potrebbe tentare di modificare il programma o i dati di un altro processo o di parte del S.O. stesso. - Protezione: politiche (cosa) e meccanismi (come) per controllare

Dettagli

Processi. Comunicazione tra processi Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Processi. Comunicazione tra processi Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino Processi Comunicazione tra processi Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Processi independenti e cooperanti I processi concorrenti possono essere Indipendenti Cooperanti

Dettagli

Thread. Thread. Creazione di nuovi processi. Applicazioni reali. La creazione di un nuovo processo costa I tempi di context switch sono elevati

Thread. Thread. Creazione di nuovi processi. Applicazioni reali. La creazione di un nuovo processo costa I tempi di context switch sono elevati Thread Thread Motivazioni Modelli Multithread Pthread, Threads in Win32, Thread in Java Problematiche relative ai Thread Thread Windows XP Thread Linux Applicazioni reali Creazione di nuovi processi Browser

Dettagli

I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO

I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO CON ESEMPI BASATI SULLA TRADUZIONE DELLA BIBBIA (ITALIAN EDITION) BY BRUNO OSIMO READ ONLINE AND DOWNLOAD EBOOK : I CAMBIAMENTI PROTOTESTO-METATESTO, UN MODELLO

Dettagli

Se vogliamo cambiarlo: i dati vengono sovrascritti. 300 White Jones (vecchio valore) 300 Worthington 0.00

Se vogliamo cambiarlo: i dati vengono sovrascritti. 300 White Jones (vecchio valore) 300 Worthington 0.00 File position pointer File position pointer Indica la posizione da cui leggere/scrivere i prossimi byte Non un puntatore, ma un valore intero (specifica la posizione dall inizio file in termini di numero

Dettagli

L ambiente di un processo (I)

L ambiente di un processo (I) L ambiente di un processo (I) L ambiente di un processo è un insieme di stringhe (terminate da \0). Un ambiente è rappresentato da un vettore di puntatori a caratteri terminato da un puntatore nullo. Ogni

Dettagli

Capitolo 7 I puntatori in C

Capitolo 7 I puntatori in C 1 Capitolo 7 I puntatori in C 7.2 Dichiarazione e inizializzazione di puntatori Variabili puntatore Contengono gli indirizzi di memoria come valore Le normali variabili contengono uno specifico valore

Dettagli

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO Componenti di so 1 Componenti di Sistemi Operativi System Call Programmi di sistema Componenti di un SO Servizi di SO 2 System Call Le system call forniscono l'interfaccia tra running program e SO Generalmente

Dettagli

System calls. permettono ai programmi utente di richiedere servizi al Sistema Operativo. servizi come scrittura di file, stampa su video, ecc.

System calls. permettono ai programmi utente di richiedere servizi al Sistema Operativo. servizi come scrittura di file, stampa su video, ecc. Le System Calls System calls permettono ai programmi utente di richiedere servizi al Sistema Operativo servizi come scrittura di file, stampa su video, ecc. corrispondenti procedure di libreria GNU C Library

Dettagli

Sistema di protezione (2) Protezione (1)

Sistema di protezione (2) Protezione (1) Sistema di protezione (1) Sistema di protezione (2) Sistema di protezione (3) - Un processo potrebbe tentare di modificare il programma o i dati di un altro processo o di parte del S.O. stesso. - Protezione:

Dettagli