Résumé des concepts du système d'exploitation et des points de connaissance -> gestion des processus

Chapitre un Présentation du système d'exploitation

1. Définition du système d'exploitation: le système d'exploitation (système d'exploitation) active l'un des systèmes informatiqueslogiciel système, Est une collection de certains modules de programme, il peut être aussi efficace et raisonnable que possibleOrganiser et gérer les logiciels informatiques et les ressources matériellesOrganiser de manière raisonnable le flux de travail de l'ordinateur, contrôler l'exécution du programme et fournir aux utilisateurs diverses fonctions de service, de sorte que le système informatique puisse fonctionner efficacement. (Il n'y a pas de définition standard largement acceptée)
2. Explication de certains termes du système d'exploitation

nom Explication
ROM (Mémoire en lecture seule) Mémoire en lecture seule
RAM (mémoire à accès aléatoire) Le périphérique à accès aléatoire, également appelé mémoire principale, est une mémoire interne qui échange directement des données avec le processeur
Processus Un programme chargé en mémoire et exécuté est appelé un processus
Mode utilisateur Lorsque le système exécute des applications utilisateur, le système est en mode utilisateur
Mode noyau Lorsqu'un utilisateur demande les services du système d'exploitation, le système doit passer en mode noyau à partir du mode utilisateur pour satisfaire la demande
Compteur de programme Spécifiez la prochaine commande à exécuter
Appel système Fournir une interface de service du système d'exploitation

Insérez la description de l'image ici

Il y a des interruptions, du partage, de la concurrence, de la concurrence, etc. dans le système d'exploitation.
1. Processus de traitement des interruptions

étape contenu
(1) L'appareil envoie un signal d'interruption au processeur
(2) Le processeur répond à l'interruption après avoir traité la commande en cours, le délai est très court
(3) Le processeur détecte l'interruption après avoir traité l'instruction en cours, détermine la source de l'interruption et envoie un signal d'interruption de confirmation au périphérique qui a envoyé l'interruption. Le signal de confirmation oblige le périphérique à remettre le périphérique d'interruption à l'état normal
(4) Le processeur commence à préparer le logiciel pour traiter l'interruption: sauvegarde le contexte du programme d'exécution du point d'interruption, y compris le mot d'état du programme PSW, la position d'instruction suivante du compteur de programme PC et la valeur de certains registres
(5) Le processeur interroge la table de vecteurs d'interruption en fonction de la source d'interruption, obtient l'adresse d'entrée du gestionnaire associé à l'interruption et définit le PC sur cette adresse. Le processeur démarre un nouveau cycle d'instructions et transfère le contrôle au gestionnaire d'interruption
(6) Le gestionnaire d'interruption commence à fonctionner, vérifiez les informations relatives aux périphériques d'E / S
(7) Lorsque le traitement d'interruption se termine, le processeur détecte l'instruction de retour d'interruption et le contexte du programme interrompu est restauré à partir de la pile système. L'état du processeur est rétabli à son état d'origine
(8) PSW et PC sont restaurés aux valeurs avant l'interruption, le processeur démarre un nouveau cycle d'instructions et le traitement d'interruption se termine

Insérez la description de l'image ici

Chapitre 2: Processus

Définition de processus (processus): un processus est une certaine fonction indépendanteProgramme ou segment de programmeUne fois sur un ensemble de donnéesExécution dynamique
Process = Programme + Execution
Process inclut le programme, les données et le bloc de contrôle de processus
2.1 État du processus

Statut du processus La description
Nouveau Le processus est en cours de création
Fonctionnement L'instruction est en cours d'exécution
En attente (wating) Le processus attend qu'un événement se produise
Prêt Processus en attente d'allocation de processeur
Terminé Le processus a terminé son exécution

Un seul processus peut être exécuté sur le processeur à la fois;
cependant, plusieurs processus peuvent être en attente ou prêts.

Insérez la description de l'image ici
2.1.3 Le
circuit imprimé du bloc de contrôle de processus comprend l'état du contrôle de processus, le compteur de processus, le compteur CPU, etc.
2.1.4 Thread
Un processus a au moins un thread, un processus peut exécuter plusieurs threads et plusieurs threads peuvent partager des données
2.2 Planification de processus
Lorsqu'il y a plusieurs processus, le planificateur de processus sélectionne un processus disponible à exécuter sur le CPU, et les autres doivent attendre que le CPU soit inactif et replanifier.
2.2.1 File d'attente de planification Lorsqu'un
processus entre dans le système, il est ajouté à la file d'attente des travaux (file d'attente des travaux), qui comprend tous les processus du système.
2.2.2
Changement de contexte L' interruption (intirrput) fait passer le CPU de l'exécution de la tâche en cours à l'exécution du programme du noyau.
Basculer la CPU vers un autre processus doit enregistrer et restaurer l'état du processus actuel vers un autre commutateur de contexte d' état de processus ( changement de contexte)
2.3 Création de
processus Les processus 2.3.1 exécutant la
plupart des systèmes d'exploitation pour identifier le processus utilisent un identificateur de processus unique ( identifiant de processus, pid)

3 synchronisation des processus

Insérez la description de l'image ici

3.1 Explication des termes sur les questions critiques de la section

Nom Explication
同步 (synchronisation des processus) Certains types d'événements se produisent dans plusieurs processus du systèmeRelation temporelle, Besoin de coopérer les uns avec les autres pour terminerUne tâche
Mutuellement exclusif Étant donné que tous les processus partagent des ressources, certaines ressources doivent être utilisées exclusivement, de sorte que la concurrence entre les processus pour utiliser ces ressources devient mutuellement exclusive.
Condition de course Plusieurs processus accèdent et manipulent simultanément les mêmes données et le résultat de l'exécution est lié à la séquence d'accès spécifique
Zone d'entrée (section location) Avant d'entrer dans la zone critique, chaque processus demande l'autorisation. La zone de code qui implémente cette demande est appelée zone de saisie.
Section critique Les variables publiques peuvent être modifiées lorsque le processus atteint cette zone. Caractéristiques: un seul processus est autorisé à s'exécuter dans la section critique
Entrée de sortie Le processus entre dans la zone de sortie après l'exécution du code de section critique
Zone restante (section restante) La zone où le processus exécute un autre code

3.2 Exigences à remplir par la solution au problème de la section critique
① Exclusion mutuelle: Si le processus Pi est exécuté dans la section critique, alors les autres processus ne peuvent pas être exécutés dans la section critique.
②Synchronisation (progression): s'il n'y a pas de processus en cours d'exécution dans la zone critique et que des processus doivent entrer dans la zone critique, seuls les processus qui ne s'exécutent pas dans la zone restante peuvent participer à la sélection pour déterminer qui peut entrer dans la zone critique la prochaine fois, et ce choix Ne peut pas être reporté indéfiniment
③Bounded wating: Le temps pendant lequel le processus attend pour entrer dans la zone critique a une plage, pas infinie.
3.3 Méthodes pour résoudre le problème de la section critique
① Noyau préemptif (noyau préemptif): Permet aux processus en mode noyau d'être préemptés.Les processus en mode noyau fonctionneront jusqu'à ce qu'ils quittent le mode noyau, bloquent ou abandonnent volontairement le contrôle du processeur.
②Noyau non préemptif (noyau non préemptif): les processus en mode noyau ne peuvent pas être préemptés
3.4.1 Solution Peterson (méthode logicielle)
Insérez la description de l'image ici
Explication: Définissez deux processus pour partager les éléments de données
int tour;
indicateur booléen [2];
j = 1 -i;
deux processus P0 et P1
processus

Ma compréhension Explication officielle
① Initialement défini le drapeau [i], c'est-à-dire que le drapeau [0] est vrai, parce que turn est égal à j est égal à 1-i; donc tourner == 1; cela signifie que le drapeau [0] veut s'appliquer pour entrer dans la zone critique. ②A ce moment, si le drapeau [j ] Autrement dit, si l'indicateur [1] est égal à true et turn est égal à 1, alors l'instruction sera toujours inactive dans la boucle while.Notez que la boucle while et la condition de jugement Jun sont suivies d'un point-virgule③直到P1退出临界区并执行flag[j]=false后,P0才能进入临界区执行 考虑进程P0,一旦它设置flag[0]=true,则P1不能进入临界区。如果P1已经进入临界区,那么flag[1]=true,P0被阻塞不能进入临界区。另一方面,互相阻塞也避免了。假设P0在while里被阻塞了,表示flag[1]为true且turn=1,则此时P1可以执行

缺点:1,只适用于两个线程 2,现代计算机体系结构不支持
3.4.2硬件同步(硬件方法)
方法一 —>中断屏蔽方法
进入临界区前执行"关中断"指令
离开临界区后执行"开中断"指令
Insérez la description de l'image ici优点:简单有效
缺点:不适用于多处理器(耗时)
方法二–>测试并设置指令
前提:test_and_set()时原子的(执行不可中断)
Insérez la description de l'image ici
为每个临界资源设置一个lock,初始为false
解释:当一个临界资源未被使用时,lock等于false,程序可以执行while下面的语句,当lock等于true时,test_and_set(&lock)函数返回值为true,程序在while中空转
3.4.3互斥锁(mutex lock)(软件方法)
互斥锁:一个进程进入临界区时得到锁,在它退出临界区时释放锁,函数acquire()获得锁,函数release()释放锁,每个互斥锁都有一个布尔变量available,它表示锁是否可用
互斥锁实现要求qcquire()和release()的调用必须是原子地执行
Insérez la description de l'image ici
进程互斥访问示例
Insérez la description de l'image ici

缺点:忙等待(busy wating),一个进程在临界区中其他任何进程都必须等待
3.6信号量(semaphore)
信号量S是一个整型变量,它的初始化通过两个标准原子操作wait()和signal(),wait()也叫P操作,signal()也叫V操作
wait()函数体定义

wati(S)
{
    
    
while(S<=0);   //忙等待
S--}

signal()函数体定义

signal()
{
    
    
S++;
}

缺点:不满足让权等待(当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”。)
3.4.5信号量的使用和实现
信号量使用改进(重新定义)
Insérez la description de l'image ici

typedef struct
{
    
    
int value;
struct process *list;
}semaphore
//每一个信号量都有一个整数value和一个进程链表list,当一个进程必须等待信号量时,就被添加带进程链表,操作signal()从等待进程链表上取走进程,并加以唤醒
wait(semaphore *S)
{
    
    
S->value--;
if(S->value<0)
{
    
    
add this process to S->list;
block();
}
}

signal(semaphore *S)
{
    
    
S->value++;
if(S->value<=0)
{
    
    
remove a process P from S->list;
wakeup(P);
}
}

3.4.6死锁与饥饿
死锁:两个或多个进程无限等待一个事件,而该事件这些等待进程之一来完成,这些进程称为死锁
3.5经典同步问题
3.5.1生产者-消费者问题
3.5.2读者-作者问题
3.5.3哲学家就餐问题
3.6管程
管程定义:指关于贡献资源的数据及其在其上操作的一组过程或共享数据结构及其规定的所有操作(没听懂)
管程能够保证在任何时候最多只有一个线程(进程)操作管程中的代码

4进程调度

4.1 CPU-I/O执行周期
进程执行:包括周期进行CPU执行和I/O等待,进程在这两个状态下不断交替,进程执行从CPU执行开始,之后I/O执行,;接着另一个CPU执行,接着另一个I/O执行;
4.1.2 CPU调度程序
当CPU空闲时,操作系统就从队列中选择一个进程来执行并尾气分配CPU。
4.1.3抢占调度
需要CPU调度的四种情况
1,一个进程从运行态到等待状态
2,一个进程从运行状态到就绪状态
3,一个进程从等待状态到就绪状态
4,一个进程终止时
如果调度只发生在第1或4种情况,则调度是非抢占的,否则是抢占的,在非抢占调度下,一个进程在分配到CPU时,会一直运行直到终止或切换状态
4.1.4调度程序
调度程序功能:
1,切换上下文
2,切换到用户模式
3,跳转到用户程序的合适位置,以便重新启动程序

调度程序应尽可能快,调度程序停止一个进程而启动另一个进程所需要的时间称为调度延迟(dispatch latency)
4.2调度准则

名称 解释
CPU 使用率 应使 CPU 尽可能地忙碌。从概念上讲,CPU 使用率从 0% 到 100%。对于一个实际系统,它的范围应从 40%(轻负荷系统)到 90%(重负荷系统)。
吞吐量 如果 CPU 忙于执行进程,那么工作就在完成。一种测量工作的方法称为吞吐量,它是在一个时间单元内进程完成的数量。对于长进程,吞吐量可能为每小时一个进程;对于短进程,吞吐量可能为每秒十个进程。
周转时间 Du point de vue d'un processus particulier, un critère important est le temps qu'il faut pour exécuter le processus. La période allant de la soumission du processus à la fin du processus est appelée délai d'exécution. Le délai d'exécution est la somme de toutes les périodes de temps, y compris l'attente pour entrer dans la mémoire, l'attente dans la file d'attente prête, l'exécution sur le CPU et l'exécution des E / S.
temps d'attente L'algorithme de planification du processeur n'affecte pas le temps d'exécution du processus et des E / S, il affecte uniquement le temps nécessaire au processus pour attendre dans la file d'attente prête. Le temps d'attente est la somme du temps passé à attendre dans la file d'attente prête.
Temps de réponse Pour les systèmes interactifs, le délai d'exécution n'est pas le meilleur critère. En général, un processus peut produire une sortie assez tôt et continuer à calculer de nouveaux résultats tout en envoyant les résultats précédents à l'utilisateur. Par conséquent, l'autre moment est le temps entre la soumission de la demande et la génération de la première réponse. Ce temps est appelé temps de réponse, qui est le temps nécessaire pour démarrer la réponse, et non le temps requis pour sortir la réponse. Le délai d'exécution est généralement limité par la vitesse du périphérique de sortie.

4.3 Algorithme de planification
4.3.1 Planification premier arrivé, premier servi Les processus de planification
premier arrivé, premier servi (premier arrivé, premier servi, FCFS)
qui demandent la CPU en premier sont alloués à la CPU en premier, et quand un processus entre dans la file d'attente prête, son PCB sera lié à la file d'attente A la fin, lorsque le CPU est inactif, il sera affecté au processus en tête de file d'attente, et ce processus en cours d'exécution supprime la
stratégie FSFS de la file d'attente Avantages:
stratégie FSFS simple et facile à comprendre Inconvénients: temps d'attente moyen long

Je suppose que tu aimes

Origine blog.csdn.net/qq_43475285/article/details/109188904
conseillé
Classement