Processes/Threads Flashcards

1
Q

What is shared by parent and child threads?

A
  • heap (tal)
  • memory space
  • global/static variables
  • open file descriptors
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is NOT shared by parent and child threads?

A
  • stack (pile)
  • thread signal mask
  • thread-specific registers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Advantages of threads:

A
  • parallelism
  • specialisation
  • simpler inter-thread communication
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Contents of a Process Control Block (PCB)

A

Identifiers:
- PID (Process ID)
- PPID (Parent process ID)
- User/Group ID
Process state:
- Running
- Ready
- Blocked
- Suspended
- Terminated
Registers/Program counter
Page tables
Open file descriptors
Priority/Queue pointers

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Where is the PCB stored?

A

In the OS’s kernel space

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Threads on a single-core CPU can be run _____, but not _____.

A

concurrently, in parallel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is shared between parent and child processes?

A
  • code segment
  • open file descriptors
  • signal handlers
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is NOT shared between parent and child processes?

A
  • address space
  • pending signals
  • thread context
    note: only the thread that
    called fork() continues
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Ordonnanceur à long-terme

A

Sélectionne quels processus doivent être placés dans la file d’attente prête (ready queue)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

L’Ordonnanceur à long-terme contrôle…

A

le degré de multiprogrammation (nombre de processus en mémoire)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Ordonnanceur à court-terme

A

Sélectionne le processus qui doit être exécuté ensuite et alloue le processeur

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Stateful Connection

A
  • persistent connection where the server remembers client interactions
  • each request relies on previous exchanges (session tracking)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Stateless Connection

A
  • each request is independent; the server does not retain client session data.
  • client must send all necessary information with each request.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Swapping occurs when…

A

memory is full

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Swapping moves a process from ____ to ____ and vise versa

A

RAM, disk

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quel est le terme pour décrire la situation où un processeur a un accès plus rapide
à certaines parties de la mémoire ?

A

Non-uniform memory access

17
Q

Command to kill all child processes

18
Q

unbounded-buffer

A

le consommateur peut devoir attendre de nouveaux éléments, mais le producteur peut toujours générer de nouveaux éléments

19
Q

bounded-buffer

A

le consommateur doit attendre si le buffer est vide, le producteur doit attendre si le buffer est plein

20
Q

How many items can be in a buffer?

A

buffer.size() - 1

21
Q

processus

A

une abstraction qui représente une unité de travail dans un environnement informatique

22
Q

Parallélisme des données

A
  • distribue des sous-ensembles des mêmes données sur plusieurs cœurs
  • chaque coeur fait la même opération
23
Q

Loi d’Amdahl

A

speedup <= 1/(S + (1-S)/N)

S = proportion sequentielle
N = processeurs

24
Q

Avantages du Multithreading Un à Un

A
  • plus d’accès simultané que plusieurs à un
  • l’application bénéficie de l’implémentation OS du multi-threading en termes de synchronisation, de blocage, etc.
25
Avantages du Multithreading Plusieurs à un
- l'exécution de l'application est indépendante du système d’exploitation
26
Désavantages du Multithreading Plusieurs à Un
- le système d'exploitation n'a aucune information sur les besoins réels de l’application - un blocage de thread (par exemple, un appel système) provoque le blocage de tous
27
Désavantages du Multithreading Un à Un
- le nombre de threads par processus est parfois limité en raison du temps de création des threads du noyau - il y a moins de flexibilité dans la façon dont les applications sont planifiées car elles sont liées plus étroitement au système d'exploitation
28
Désavantages du Multithreading Plusieurs à Plusieurs
- plus compliqué - nécessite une coordination entre le système d'exploitation et les gestionnaires de thread au niveau de l’utilisateur
29
Avantages du Multithreading Plusieurs à Plusieurs
Permet au système d'exploitation de créer un nombre suffisant de threads du noyau, en fonction de sa configuration matérielle, mais donne la possibilité à l'utilisateur de créer autant de threads utilisateur que souhaité
30
annulation asynchrone
met fin au
 thread cible immédiatement
31
annulation différée
permet au thread cible de vérifier périodiquement s'il doit être annulé
32
When to use Binary Semaphore (Mutex)
when enforcing mutual exclusion
33
When to use counting semaphore
when controlling access to multiple resources
34
bounded buffer produce() function
item next_produced; while (true) { /* produce an item */ while (((in+ 1) % B_SIZE) == out) ; /* do nothing */ buffer[in] = next_produced; in = (in + 1) % BUFFER_SIZE; }
35
bounded buffer consume() function
item next_consumed; while (true) { while (in == out) ; /* do nothing */
 next_consumed = buffer[out]; out = (out + 1) % B_SIZE;
 /* consume the item in next consumed */ }
36
37
38