Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
teknopedia

teknopedia

teknopedia

teknopedia

teknopedia

teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
teknopedia
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Process control block (Unix) - Teknopedia
Process control block (Unix) - Teknopedia
Abbozzo
Questa voce sull'argomento sistema operativo è solo un abbozzo.
Contribuisci a migliorarla secondo le convenzioni di Teknopedia.

Il process control block nel kernel dei sistemi operativi Unix e Unix-like comprende una serie specifica di attributi, gran parte dei quali vengono ereditati dai nuovi processi creati mediante la chiamata di sistema fork() (viene ereditata una copia degli attributi).

Alcuni di essi sono poi automaticamente modificati da una successiva invocazione della chiamata di sistema exec().

Attributi non ereditati

[modifica | modifica wikitesto]

Questi attributi non sono ereditati dai processi figli creati tramite fork():

  • PID – Identifica univocamente il processo nel sistema. Non è modificabile e non varia per tutta la durata del processo. L'invocazione di fork() crea un nuovo processo con un nuovo valore per questo attributo.
  • parent PID – Identifica il processo padre. Non è modificabile, ma può divenire 1 nel corso della vita del processo se esso rimane orfano. L'invocazione di fork() crea un nuovo processo figlio che ha come valore di questo attributo il PID del processo padre che aveva invocato fork().

Attributi ereditati non modificati da exec()

[modifica | modifica wikitesto]

I processi figli creati tramite fork() ereditano una copia dei seguenti attributi, e successive invocazioni di exec() non li modificano:

  • PGID – Identifica il gruppo di processi di cui questo processo fa parte, ed anche il processo leader del gruppo. Tutti i processi possono modificarselo (con dei limiti) tramite la chiamata di sistema setpgrp().
  • SID (Session ID) – Identifica la sessione di cui questo processo fa parte. Tutti i processi possono modificarselo (con dei limiti) tramite le chiamate di sistema setsid() e setpgrp().
  • real UID corrente – Identifica l'utente reale proprietario del processo. I processi privilegiati possono modificarselo tramite le chiamate di sistema setuid() e setreuid().
  • real GID corrente – Identifica il gruppo principale reale. I processi privilegiati possono modificarselo tramite le chiamate di sistema setgid() e setregid().
  • umask corrente – Indica i permessi da negare in fase di creazione di un nuovo File o Directory. Tutti i processi possono modificarsela tramite la chiamata di sistema umask().
  • l'elenco dei GID supplementari (in numero massimo dipendente dall'implementazione). I processi privilegiati possono modificarselo tramite la chiamata di sistema setgroups()
  • l'elenco dei descrittori dei file correntemente aperti.
  • il riferimento all'inode della directory corrente. Tutti i processi possono modificarselo tramite la chiamata di sistema chdir()
  • il riferimento all'inode della directory da considerare come radice del file system. I processi privilegiati possono modificarselo tramite la chiamata di sistema chroot().
  • il riferimento alla struttura che rappresenta il terminale controllante. Può anche non esservi alcun terminale controllante associato al processo.

Le variabili d'ambiente del processo, pur non facendo parte del process control block, sono ereditate tra processi. I processi possono modificare la propria copia delle variabili mediante le funzioni setenv() o putenv().

Attributi ereditati e modificati da exec()

[modifica | modifica wikitesto]

I processi figli creati tramite fork() ereditano una copia dei seguenti attributi, ma una successiva invocazione di exec() li può modificare:

  • effective UID corrente – Identifica l'utente da usare ai fini dei permessi. Normalmente è identico al real UID, ma può essere diverso in caso di programmi set User ID. I processi privilegiati possono modificarselo tramite le chiamate di sistema seteuid(), setuid() e setreuid().
  • effective GID corrente – Identifica il gruppo principale da usare ai fini dei permessi. Normalmente è identico al real GID, ma può essere diverso in caso di programmi set User ID. I processi privilegiati possono modificarselo tramite le chiamate di sistema setegid(), setgid() e setregid().
  • saved effective UID – Il valore dell'effective UID dopo l'ultimo caricamento di un programma tramite exec(). I processi privilegiati possono modificarselo tramite la chiamata di sistema setuid().
  • saved effective GID – Il valore dell'effective GID dopo l'ultimo caricamento di un programma tramite exec(). I processi privilegiati possono modificarselo tramite la chiamata di sistema setgid().
  • puntatori ai gestori dei segnali. Ogni processo può modificarseli tramite la chiamata di sistema sigaction().

Bibliografia

[modifica | modifica wikitesto]
  • W. Richard Stevens, Advanced Programming in the UNIX Environment, Addison Wesley, 1992, ISBN 0-201-56317-7.

Voci correlate

[modifica | modifica wikitesto]
  • Exec(2)
  • Fork (programmazione)
  • Inode
  • PID (Unix)
  • Process control block
  • Segnale (informatica)
  • User identifier
  • Group identifier
  • Umask
  Portale Informatica: accedi alle voci di Teknopedia che trattano di informatica
Estratto da "https://it.wikipedia.org/w/index.php?title=Process_control_block_(Unix)&oldid=90749282"

  • Indonesia
  • English
  • Français
  • 日本語
  • Deutsch
  • Italiano
  • Español
  • Русский
  • فارسی
  • Polski
  • 中文
  • Nederlands
  • Português
  • العربية
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022