• Non ci sono risultati.

Laboratorio di Sistemi Operativi

N/A
N/A
Protected

Academic year: 2021

Condividi "Laboratorio di Sistemi Operativi"

Copied!
3
0
0

Testo completo

(1)

Laboratorio di Sistemi Operativi

primavera 2009

Introduzione

Laboratorio di Sistemi Operativi

2

Introduzione



Ogni s.o. fornisce servizi ai programmi che girano

esecuzione di nuovi programmi

aprire/chiudere file

allocare memoria



Noi studieremo i servizi offerti da UNIX



Descrivere un sistema operativo è impossibile se non attraverso l’introduzione ed una

panoramica dei suoi “termini” salienti

Laboratorio di Sistemi Operativi

3

Introduzione

 shell: interprete di comandi



sh

(include reminiscenze di ALGOL)



csh

(usa una sintassi simile al C, prende comandi interattivi o da programmi)



tcsh

(come la csh + permette di viaggiare su e giù per la lista dei comandi dati, spelling correction dei comandi )



bash

Laboratorio di Sistemi Operativi

4

Introduzione

Filesytem

gerarchico

files & directory

root /

Pathname: sequenza di zero o più nomi

di file separati da /

home bin etc tmp

/

rescigno ls cd

file.c

Es:/home/rescigno/file.c



Nomi di file speciali:

dot .

dot dot ..

(2)

Laboratorio di Sistemi Operativi

5

Introduzione

 “File eseguibile”:



letto dalla memoria



eseguito dal kernel

 Processo: istanza in esecuzione di un

“eseguibile” (detto anche task)

 Ogni processo ha un identificatore numerico pid>0 associato mediante il quale ci si riferisce

Laboratorio di Sistemi Operativi

6

Errori

 quando avviene un errore in una funzione UNIX, viene restituito un intero negativo (-1, in genere)

 la vbl intera errno è settata ad un valore che fornisce ulteriori info

 vedi la sezione 2 del manuale di UNIX:

man 2 intro

 <errno.h> contiene i valori costanti assumibili da errno

In linux: </usr/include/errno.h>

Laboratorio di Sistemi Operativi

7

Identificatori utenti



Un utente viene identificato dal sistema attraverso:

User Id: valore numerico che ci identifica in /etc/passwd

Group Id: nel file /etc/group c’è la mappa tra i nomi dei gruppi ed i rispettivi identificatori numerici



superuser ha uid = 0

Esempi:

ls –l usa /etc/passwd per printare la login name del proprietario

printf("uid =%d, gid =%d\n”,getuid(),getgid());

Laboratorio di Sistemi Operativi

8

System Call & librerie

 Una system call è un entry point del kernel per fornire servizi ai processi che li richiedono

 man 2 fornisce la documentazione sulle system call (definite in C)

 system call  funzione omonima nella libreria standard (wrapper)

Es. ssize_t read(intfiledes, void *buff, size_tnbytes);

 l'utente chiama il wrapper (attraverso la sequenza standard di chiamate a funzioni di C), questo invoca il servizio del kernel

 Semplifichiamo: System Call = Funzioni C

(3)

Laboratorio di Sistemi Operativi

9

System Call & Librerie

 man 3 contiene le funzioni general purpose per il programmatore (libc)



printf, malloc, etc.



non sono system call

Esempio:

il codice vuole allocare memoria  invoca mallocla quale per allocare realmente utilizza la system callsbrk

Laboratorio di Sistemi Operativi

10

System Call & Librerie

 system call : interfaccia minima, mentre le funzioni di libreria forniscono più elaborate funzionalità

 libc : interfaccia normale

 system call sono definitive dal s.o.,

le funzioni di libreria no!

Riferimenti

Documenti correlati

Fissare a priori tra client e server una chiave (posta ad esempio in un header file) che sarà utilizzata dal server per creare la

[r]

inizializzato ad un valore positivo indicante il numero di risorse che sono a disposizione per essere condivise.

copiare il contenuto di un file in un altro usando esclusivamente read da standard input e write su

 allocazione dinamica

uid_t geteuid (void); effective user ID del processo chiamante gid_t getgid (void); real group ID del processo chiamante gid_t getegid (void); effective group ID del

Descrizione: chiamata da un processo padre chiede lo stato di terminazione in statloc del figlio specificato dal pid.. 1° argomento; tale processo padre si blocca in attesa o

 Il segnale e’ un evento asincrono; esso puo’ arrivare in un momento qualunque ad un processo ed il processo puo’ limitarsi a verificare, per esempio, il valore di una variabile,