欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      第三章 處理機(jī)調(diào)度與死鎖小結(jié)

      時(shí)間:2019-05-13 18:48:00下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《第三章 處理機(jī)調(diào)度與死鎖小結(jié)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《第三章 處理機(jī)調(diào)度與死鎖小結(jié)》。

      第一篇:第三章 處理機(jī)調(diào)度與死鎖小結(jié)

      第三章 處理機(jī)調(diào)度與死鎖

      重點(diǎn)與難點(diǎn)小結(jié)

      1.高優(yōu)先權(quán)調(diào)度和基于時(shí)間片的輪轉(zhuǎn)調(diào)度算法

      1)

      2)

      3)時(shí)間片輪轉(zhuǎn)調(diào)度

      4)多級(jí)反饋隊(duì)列調(diào)度

      2.常用的幾種實(shí)時(shí)調(diào)度算法

      1)最早截止時(shí)間優(yōu)先(EDF)算法

      2)最低松弛度優(yōu)先(LLF)算法

      3.死鎖的基本概念

      1)2)4.預(yù)防死鎖的方法

      1)摒棄互斥條件

      2)摒棄請(qǐng)求保持條件

      3)摒棄不剝奪條件

      4)摒棄環(huán)路等待條件

      5)各種方式的比較

      5.死鎖的避免 熟練掌握銀行家算法和安全性檢測(cè)算法,并能利用這兩個(gè)算法求解具體問(wèn)題

      6.死鎖定理

      第二篇:處理機(jī)調(diào)度與死鎖小結(jié)

      第三章 處理機(jī)調(diào)度與死鎖

      重點(diǎn)與難點(diǎn)小結(jié)

      1.高優(yōu)先權(quán)調(diào)度和基于時(shí)間片的輪轉(zhuǎn)調(diào)度算法

      1)高優(yōu)先權(quán)優(yōu)先調(diào)度

      2)高響應(yīng)比優(yōu)先調(diào)度

      3)時(shí)間片輪轉(zhuǎn)調(diào)度

      4)多級(jí)反饋隊(duì)列調(diào)度

      2.常用的幾種實(shí)時(shí)調(diào)度算法

      1)最早截止時(shí)間優(yōu)先(EDF)算法

      2)最低松弛度優(yōu)先(LLF)算法

      3.多處理機(jī)環(huán)境下的進(jìn)程(線程)調(diào)度方式

      1)自調(diào)度方式

      2)成組調(diào)度方式

      3)專用處理器分配方式

      4.死鎖的基本概念

      1)產(chǎn)生死鎖的原因

      2)產(chǎn)生死鎖的必要條件

      5.預(yù)防死鎖的方法

      1)摒棄互斥條件

      2)摒棄請(qǐng)求保持條件

      3)摒棄不剝奪條件

      4)摒棄環(huán)路等待條件

      5)各種方式的比較

      6.死鎖的避免

      熟練掌握銀行家算法和安全性檢測(cè)算法,并能利用這兩個(gè)算法求解具體問(wèn)題

      第三篇:操作系統(tǒng)-課程設(shè)計(jì)報(bào)告-處理機(jī)調(diào)度程序

      操作系統(tǒng)

      課程設(shè)計(jì)報(bào)告

      學(xué)校:廣州大學(xué)

      學(xué)院:計(jì)算機(jī)科學(xué)與教育軟件學(xué)院 班級(jí):計(jì)算機(jī)127班 課題:處理機(jī)調(diào)度程序

      任課老師:陶文正、陳文彬

      姓名:黃俊鵬

      學(xué)號(hào):1200002111 班內(nèi)序號(hào):27 成績(jī):

      日期:2015年1月6日

      一、設(shè)計(jì)目的

      在多道程序和多任務(wù)系統(tǒng)中,系統(tǒng)內(nèi)同時(shí)處于就緒狀態(tài)的進(jìn)程可能有若干個(gè)。也就是說(shuō)能運(yùn)行的進(jìn)程數(shù)大于處理機(jī)個(gè)數(shù)。為了使系統(tǒng)中的進(jìn)程能有條不紊地工作,必須選用某種調(diào)度策略,選擇一進(jìn)程占用處理機(jī)。要求學(xué)生設(shè)計(jì)一個(gè)模擬處理機(jī)調(diào)度算法,以鞏固和加深處理機(jī)調(diào)度的概念。

      二、設(shè)計(jì)要求

      1)進(jìn)程調(diào)度算法包括:時(shí)間片輪轉(zhuǎn)法,短作業(yè)優(yōu)先算法,動(dòng)態(tài)優(yōu)先級(jí)算法。2)可選擇進(jìn)程數(shù)量

      3)本程序包括三種算法,用C語(yǔ)言實(shí)現(xiàn),執(zhí)行時(shí)在主界面選擇算法(可用函數(shù)實(shí)現(xiàn))(進(jìn)程數(shù),運(yùn)行時(shí)間,優(yōu)先數(shù)由隨機(jī)函數(shù)產(chǎn)生)執(zhí)行,顯示結(jié)果。

      三、設(shè)計(jì)思路及算法思想

      1.界面菜單選項(xiàng)

      一級(jí)菜單提供2個(gè)選項(xiàng): ① 自動(dòng)生成進(jìn)程數(shù)量 ② 手動(dòng)輸入所需進(jìn)程數(shù)量

      一級(jí)菜單選擇完畢后進(jìn)入二級(jí)菜單: ① 重新生成進(jìn)程 ② 時(shí)間片輪轉(zhuǎn)法 ③ 短作業(yè)優(yōu)先算法 ④ 動(dòng)態(tài)優(yōu)先級(jí)算法 ⑤ 退出程序

      2.調(diào)度算法

      程序所用PCB結(jié)構(gòu)體

      需要用到的進(jìn)程結(jié)構(gòu)體如上圖所示

      1)時(shí)間片輪轉(zhuǎn)法

      主要是設(shè)置一個(gè)當(dāng)前時(shí)間變量,curTime和時(shí)間片roundTime。

      遍歷進(jìn)程組的時(shí)候,每運(yùn)行一個(gè)進(jìn)程,就把curTime += roundTime。進(jìn)程已運(yùn)行時(shí)間加roundTime

      2)短作業(yè)優(yōu)先算法

      遍歷進(jìn)程組,找到未運(yùn)行完成并且運(yùn)行時(shí)間最短的進(jìn)程,讓它一次運(yùn)行完成,如此往復(fù),直到所有進(jìn)程都運(yùn)行完成為止。

      3)動(dòng)態(tài)優(yōu)先級(jí)算法

      做法跟短作業(yè)優(yōu)先算法類似,此處主要是比較進(jìn)程的優(yōu)先數(shù),優(yōu)先級(jí)高者,先執(zhí)行。直到全部執(zhí)行完畢。當(dāng)一個(gè)進(jìn)程運(yùn)行完畢后,適當(dāng)增減其余進(jìn)程的優(yōu)先數(shù),以達(dá)到動(dòng)態(tài)調(diào)成優(yōu)先級(jí)的效果。

      3.程序流程圖

      四、運(yùn)行截圖

      1)啟動(dòng)后輸入5,生成5個(gè)進(jìn)程

      2)輸入1,選擇時(shí)間片輪轉(zhuǎn)法。

      自動(dòng)輸出結(jié)果,分別是時(shí)間片為1和4的結(jié)果

      3)輸入2,選擇短作業(yè)優(yōu)先算法

      4)輸入3,選擇動(dòng)態(tài)優(yōu)先級(jí)算法

      5)輸入0,重新生成進(jìn)程,再輸入3,生成3個(gè)進(jìn)程,選擇2.短作業(yè)優(yōu)先算法

      6)輸入q,退出

      五、心得體會(huì)

      通過(guò)這次實(shí)驗(yàn),讓我對(duì)操作系統(tǒng)的進(jìn)程調(diào)度有了更進(jìn)一步的了解。這個(gè)實(shí)驗(yàn)的模擬程度跟真實(shí)系統(tǒng)相比只是冰山一角,由此可見操作系統(tǒng)是何其復(fù)雜的軟件產(chǎn)品,僅進(jìn)程調(diào)度就有那么豐富和內(nèi)涵的知識(shí)需要掌握。

      但是再?gòu)?fù)雜的系統(tǒng),都是由小部件構(gòu)成的。古語(yǔ)云:不積跬步,無(wú)以至千里。不積小流,無(wú)以成江海。掌握這些基礎(chǔ)的知識(shí),可以為以后打下扎實(shí)的基礎(chǔ)。

      六、附錄(源代碼)

      //

      // main.c

      // ProcessDispatch //

      // Created by Jeans on 1/5/15.// Copyright(c)2015 Jeans.All rights reserved.//

      #include #include

      //最小進(jìn)程數(shù)

      #define MIN_PROCESS //最大進(jìn)程數(shù)

      #define MAX_PROCESS

      //最小優(yōu)先數(shù)

      #define MIN_PRIORITY

      0 //最大優(yōu)先數(shù)

      #define MAX_PRIORITY

      //最小運(yùn)行時(shí)間

      #define MIN_RUNNING_TIME

      //最大運(yùn)行時(shí)間

      #define MAX_RUNNING_TIME

      typedef struct PCB{

      char name;

      //進(jìn)程名

      int priority;

      //優(yōu)先數(shù)

      int runningTime;

      //運(yùn)行時(shí)間

      int arriveTime;

      //到達(dá)時(shí)間

      int beginTime;

      //開始時(shí)間

      int finishTime;

      //完成時(shí)間

      int cyclingTime;

      //周轉(zhuǎn)時(shí)間

      double weigthCyclingTime;//帶權(quán)周轉(zhuǎn)時(shí)間

      int hadRunTime;

      //已經(jīng)運(yùn)行時(shí)間

      int finish;

      //是否完成 }PCB;//獲取隨機(jī)數(shù)

      int GetRandomNumber(int min,int max){

      return arc4random()%(max-min)+ min;}

      //初始化PCB組

      void InitPCBGroup(PCB p[],int num){

      char name = 'A';

      for(int i = 0;i < num;i++){

      p[i].name = name;

      p[i].priority = GetRandomNumber(MIN_PRIORITY, MAX_PRIORITY);

      p[i].runningTime = GetRandomNumber(MIN_RUNNING_TIME,MAX_RUNNING_TIME);

      name++;

      } }

      void PrintResult(PCB p[],int num){

      double avgCycTime = 0,avgWeiCycTime = 0;

      printf(“|進(jìn)程名

      到達(dá)時(shí)間

      運(yùn)行時(shí)間

      開始時(shí)間

      完成時(shí)間

      周轉(zhuǎn)時(shí)間

      帶權(quán)周轉(zhuǎn)時(shí)間

      優(yōu)先數(shù)

      |n”);

      for(int i = 0;i < num;i++){

      printf(“|%3c

      %-4d

      %-4d

      %-4d

      %-4d

      %-4d

      %-6.2f

      %-4d|n”,p[i].name,p[i].arriveTime,p[i].runningTime,p[i].beginTime,p[i].finishTime,p[i].cyclingTime,p[i].weigthCyclingTime,p[i].priority);

      avgCycTime += p[i].cyclingTime;

      avgWeiCycTime += p[i].weigthCyclingTime;

      //還原

      p[i].arriveTime = 0;

      p[i].beginTime = 0;

      p[i].finishTime = 0;

      p[i].cyclingTime = 0;

      p[i].weigthCyclingTime = 0;

      p[i].hadRunTime = 0;

      p[i].finish = 0;

      }

      avgWeiCycTime /= num;

      avgCycTime /= num;

      printf(“平均周轉(zhuǎn)時(shí)間:%.2f

      平均帶權(quán)周轉(zhuǎn)時(shí)間:%.2fn”,avgCycTime,avgWeiCycTime);} //時(shí)間片輪轉(zhuǎn)法

      void RealRoundRobin(PCB p[],int num,int roundTime){

      printf(“nn-----------------------------時(shí)間片:%d------n”,roundTime);

      int finishNum = 0;

      int curTime = 0;

      while(finishNum!= num){

      for(int i = 0;i < num;i++){

      if(p[i].finish)continue;

      //開始時(shí)間

      if(p[i].beginTime == 0 && i!= 0){

      p[i].beginTime = curTime;

      }

      //已經(jīng)完成

      if(p[i].hadRunTime + roundTime >= p[i].runningTime){

      p[i].finishTime = curTime + p[i].runningTimep[i].arriveTime;

      p[i].weigthCyclingTime = p[i].cyclingTime/(double)p[i].runningTime;

      p[i].finish = 1;

      finishNum ++;

      curTime += p[i].runningTimep[min].arriveTime;

      p[min].weigthCyclingTime = p[min].cyclingTime/(double)p[min].runningTime;

      p[min].finish = 1;

      finishNum++;

      curTime = p[min].finishTime;

      }

      PrintResult(p, num);}

      //動(dòng)態(tài)優(yōu)先級(jí)算法

      void DynamicPriorityFirst(PCB p[],int num){

      printf(“nn-----------------------------動(dòng)態(tài)優(yōu)先級(jí)算法--n”);

      int finishNum = 0;

      int curTime = 0;

      while(finishNum!= num){

      int min = 0;

      //查找優(yōu)先級(jí)最高下標(biāo)

      for(int i = 1;i < num;i++){

      if(p[i].finish == 0 && p[min].priority >= p[i].priority)

      min = i;

      else if(p[i].finish == 0 && p[min].finish == 1)

      min = i;

      }

      p[min].beginTime = curTime;

      p[min].hadRunTime = p[min].runningTime;

      p[min].finishTime = p[min].beginTime + p[min].runningTime;

      p[min].cyclingTime = p[min].finishTime-p[min].arriveTime;

      p[min].weigthCyclingTime = p[min].cyclingTime/(double)p[min].runningTime;

      p[min].finish = 1;

      finishNum++;

      curTime = p[min].finishTime;

      }

      PrintResult(p, num);}

      int main(int argc, const char * argv[]){

      PCB pcbGroup[30];

      //pcb數(shù)組

      int processNum = 0;//進(jìn)程數(shù)

      while(1){

      //選擇進(jìn)程數(shù)量

      while(1){

      if(processNum!= 0)

      break;

      printf(“n----------n”);

      printf(“當(dāng)前默認(rèn)進(jìn)程數(shù)范圍%d--%dn”,MIN_PROCESS,MAX_PROCESS);

      printf(“1)輸入0可隨機(jī)生成進(jìn)程數(shù)目n2)輸入%d-%d范圍內(nèi)數(shù)字,回車,可生成指定數(shù)目進(jìn)程n>>>>>>”,MIN_PROCESS,MAX_PROCESS);

      int num = 0;

      scanf(“%d”,&num);

      if(num == 0){

      processNum = GetRandomNumber(MIN_PROCESS, MAX_PROCESS);

      break;

      }else{

      if((num >= MIN_PROCESS)&&(num <= MAX_PROCESS)){

      processNum = num;

      InitPCBGroup(pcbGroup,processNum);

      break;

      }else

      printf(“n輸入有誤,請(qǐng)重新輸入.n”);

      }

      }

      //選擇算法

      printf(“n-----------------------------請(qǐng)輸入對(duì)應(yīng)選項(xiàng)序號(hào)-----------------------------n”);

      printf(“0.重新生成進(jìn)程 | 1.時(shí)間片輪轉(zhuǎn)法 | 2.短作業(yè)優(yōu)先算法 | 3.動(dòng)態(tài)優(yōu)先級(jí)算法 | q.退出n>>>>>>”);

      char ch;

      while((ch = getchar())== 'n');

      switch(ch){

      case '0'://0 重新生成進(jìn)程

      processNum = 0;break;

      case '1'://1 時(shí)間片輪轉(zhuǎn)法

      RoundRobin(pcbGroup, processNum);break;

      case '2'://2 短作業(yè)優(yōu)先算法

      ShortestJobFirst(pcbGroup, processNum);break;

      case '3'://3 動(dòng)態(tài)優(yōu)先級(jí)算法

      DynamicPriorityFirst(pcbGroup,processNum);break;

      case 'q'://q 退出

      exit(0);

      default:

      break;

      }

      }

      return 0;}

      第四篇:操作系統(tǒng) 單處理機(jī)系統(tǒng)的進(jìn)程調(diào)度

      一.實(shí)驗(yàn)內(nèi)容描述

      1.目的

      (1)了解Windows內(nèi)存管理器(2)理解Windows的地址過(guò)程 2.內(nèi)容

      任意給出一個(gè)虛擬地址,通過(guò)WinDbg觀察相關(guān)數(shù)據(jù)并找到其物理地址

      二.理論分析

      Windows采用頁(yè)式虛擬存儲(chǔ)管理技術(shù)管理內(nèi)存,頁(yè)面是硬件級(jí)別上的最小保護(hù)單位 1.Windows內(nèi)存管理器

      Windows的內(nèi)存管理主要由Windows執(zhí)行體中的虛存管理程序負(fù)責(zé),并由環(huán)境子系統(tǒng)負(fù)責(zé),并由環(huán)境子系統(tǒng)負(fù)責(zé)與具體API相關(guān)的一些用戶態(tài)特性的實(shí)現(xiàn)。虛存管理程序是Windows中負(fù)責(zé)內(nèi)存管理的那些子程序和數(shù)據(jù)結(jié)構(gòu)的集合 內(nèi)存管理器的主要任務(wù)是:

      地址變換:將一個(gè)進(jìn)程的虛擬地址空間轉(zhuǎn)譯為物理內(nèi)存地址

      交換:當(dāng)內(nèi)存不足時(shí),將內(nèi)存中的有些內(nèi)容轉(zhuǎn)移到磁盤上,并且以后還要再次將這些內(nèi)容讀回

      2.Windows內(nèi)存管理策略

      Windows采用頁(yè)式虛擬存儲(chǔ)管理技術(shù)管理內(nèi)存,頁(yè)面是硬件級(jí)別上最小的保護(hù)單位。根據(jù)硬件的體系結(jié)構(gòu)不同,頁(yè)面尺寸被分為兩種,大頁(yè)面和小頁(yè)面。X86系統(tǒng)下小頁(yè)面為4KB,大頁(yè)面為4MB。大頁(yè)面的優(yōu)點(diǎn)是:當(dāng)引用同一頁(yè)面內(nèi)其他數(shù)據(jù)時(shí),地址轉(zhuǎn)移的速度會(huì)很快。不過(guò)使用大頁(yè)面通常要較大的內(nèi)存空間,而且必須用一個(gè)單獨(dú)的保護(hù)項(xiàng)來(lái)映射,因此可能會(huì)造成出現(xiàn)錯(cuò)誤而不引發(fā)內(nèi)存訪問(wèn)違例的情況。通常PC機(jī)都為小頁(yè)面 3.Windows虛擬地址空間布局 x86結(jié)構(gòu)下的布局方式:

      默認(rèn)情況下,32位Windows系統(tǒng)中每個(gè)用戶進(jìn)程可以占有2GB的私有地址空間。操作系統(tǒng)占有另外的2GB 2GB用戶的進(jìn)程地址空間布局如表:

      2GB的系統(tǒng)地址空間布局如同:

      3.虛擬地址轉(zhuǎn)譯

      地址轉(zhuǎn)譯是指將進(jìn)程的虛擬地址空間映射到實(shí)際物理頁(yè)面的過(guò)程。x86系統(tǒng)中地址轉(zhuǎn)譯過(guò)程如圖:

      關(guān)鍵數(shù)據(jù)結(jié)構(gòu)如下: 頁(yè)目錄:每個(gè)進(jìn)程都有一個(gè)頁(yè)目錄,它是內(nèi)存管理器為了映射進(jìn)程中所有的頁(yè)表位置而創(chuàng)建的一個(gè)頁(yè)面。進(jìn)程也目錄的地址被保存在內(nèi)核進(jìn)程快KPROCESS中,在x86系統(tǒng)上,它被映射到虛擬地址0xC0300000,當(dāng)一個(gè)進(jìn)程正在執(zhí)行時(shí),CPU可以通過(guò)寄存器CR3知道該進(jìn)程頁(yè)目錄的位置。頁(yè)目錄由目錄項(xiàng)(PDE)構(gòu)成,每個(gè)PDE長(zhǎng)4字節(jié),描述了該進(jìn)程中所有可能的頁(yè)表的狀態(tài)和位置。其格式和PTE類似。x86系統(tǒng)上,要描述完整的4GB虛擬地址空間,需要1024個(gè)頁(yè)表。因此映射這些頁(yè)表的進(jìn)程頁(yè)目錄需包含1024個(gè)PDE,恰好占用一個(gè)頁(yè)面。

      頁(yè)表:進(jìn)程的頁(yè)目錄項(xiàng)指向頁(yè)表。每個(gè)頁(yè)表占用一個(gè)頁(yè)面,由1024項(xiàng)PTE組成。一個(gè)有效的PTE大小為4字節(jié),包含兩個(gè)主域:數(shù)據(jù)所在的物理頁(yè)面的頁(yè)面幀編號(hào)(PNF)或者內(nèi)存中一個(gè)頁(yè)面的物理地址的PFN;一些描述該頁(yè)面狀態(tài)和保護(hù)屬性的標(biāo)志。

      虛擬地質(zhì)結(jié)構(gòu):x86系統(tǒng)上,一個(gè)32位虛擬地址被解釋為三個(gè)單獨(dú)的部分,頁(yè)目錄索引、頁(yè)表索引和字節(jié)索引。由于頁(yè)目錄項(xiàng)有1024個(gè),因此頁(yè)目錄索引為10位;一個(gè)也表中含有1024個(gè)PTE。因此頁(yè)表索引也為10位,字節(jié)索引為12位,正好表示一頁(yè)(4KB)內(nèi)容

      三.實(shí)驗(yàn)步驟及結(jié)果

      1.查找頁(yè)目錄首地址

      以程序WG.exe作為觀測(cè)對(duì)象。

      啟動(dòng)WinDbg到內(nèi)核調(diào)試模式,運(yùn)行程序WG.exe。終斷目標(biāo)機(jī)運(yùn)行,輸入命令:kd>!process

      發(fā)現(xiàn)WG.exe進(jìn)程正處于運(yùn)行狀態(tài) 輸入命令:

      在KPROCESS中名為DirectoryTableBase的域,對(duì)應(yīng)值為0x9fa6000,即WG.exe進(jìn)程頁(yè)目錄的物理地址 查看CR3寄存其中的內(nèi)容,輸入命令:

      CR3寄存其中的值和KPROCESS中記錄的頁(yè)目錄基址相同。這是因?yàn)樵贑PU切換執(zhí)行任務(wù)時(shí),其內(nèi)容要更新為當(dāng)前進(jìn)程的頁(yè)目錄基址。2.地址轉(zhuǎn)譯過(guò)程

      假設(shè)給定的虛擬地址為0x401001 輸入命令:

      可以看到:

      PDE的虛擬地址為C0300004.PTE的虛擬地址為C0001004 最后一行信息“pfn 9e4a---DA--UWEV”表示PDE中的具體內(nèi)容,9e4a是給定虛擬地址所在頁(yè)表在內(nèi)存中對(duì)應(yīng)的物理頁(yè)號(hào),“---DA—UWEV”是標(biāo)志信息,“pfn a173----A--UREV”表示PTE中的具體內(nèi)容,a173是數(shù)據(jù)頁(yè)裝入內(nèi)存的物理頁(yè)號(hào)。

      將數(shù)據(jù)頁(yè)對(duì)應(yīng)的物理頁(yè)號(hào)a173加上業(yè)內(nèi)索引(0x1)即可得到虛擬地址0x401001的物理地址

      3.觀察系統(tǒng)頁(yè)表

      給定觀測(cè)虛擬地址為0x80001001 輸入命令:

      當(dāng)前正在執(zhí)行的進(jìn)程是:WG.exe 輸入命令:

      得到PDE為C0300800,其對(duì)應(yīng)的物理頁(yè)號(hào)為3b 繼續(xù)讓目標(biāo)機(jī)運(yùn)行,啟動(dòng)A.exe,然后中斷目標(biāo)機(jī)運(yùn)行。輸入命令:

      當(dāng)前正在執(zhí)行的進(jìn)程為A.exe 輸入命令:

      PDE信息和對(duì)應(yīng)的物理頁(yè)號(hào)與前面觀測(cè)到的相同

      四.結(jié)論

      1.數(shù)據(jù)頁(yè)對(duì)應(yīng)的物理頁(yè)號(hào)加上相應(yīng)業(yè)內(nèi)索引即可得到虛擬地址的物理地址 2.不同的進(jìn)程頁(yè)目錄都指向了相同的系統(tǒng)表頁(yè)

      五.心得體會(huì)

      在這次上機(jī)實(shí)驗(yàn),通過(guò)對(duì)WinDbg和VPc的調(diào)試運(yùn)用,我熟悉了Windows內(nèi)存管理器的結(jié)構(gòu),也認(rèn)知到Windows如何進(jìn)行地址轉(zhuǎn)譯和轉(zhuǎn)換。對(duì)相關(guān)的知識(shí)也進(jìn)行了溫習(xí),更牢的掌握了相關(guān)知識(shí)。當(dāng)然這些還遠(yuǎn)遠(yuǎn)不夠,我以后還要繼續(xù)不斷努力,去學(xué)習(xí)了解掌握操作系統(tǒng)的各方面知識(shí)。

      附錄:

      1.A.exe代碼

      #include #include

      #define N 1

      HANDLE mutexSemaphore;HANDLE synchSemaphore_1;HANDLE synchSemaphore_2;

      HANDLE mutexDisplay;

      void Display(char*str,int delayTime){ if(WaitForSingleObject(mutexDisplay,INFINITE)==WAIT_OBJECT_0){ printf(“%snn”,str);ReleaseMutex(mutexDisplay);Sleep(delayTime);} }

      void useTime(double limit){ for(double i=0;i<=limit;i+=0.001);}

      void CreateProduct(){ Display(“Creating a production...”,0);useTime(200000);Display(“Creating finished.”,100);}

      void PutProduct(){ Display(“Putting a production...”,0);useTime(150000);Display(“Putting finished”,100);}

      void GetProduct(){ Display(“Getting a production...”,0);useTime(100000);Display(“Getting finished.”,100);}

      void ConsumeProduct(){ Display(“Cosuming a production...”,0);useTime(100000);Display(“Cosuming finished.”,100);}

      void Producer(){ while(true){ CreateProduct();

      if(WaitForSingleObject(synchSemaphore_1,INFINITE)==WAIT_OBJECT_0){

      if(WaitForSingleObject(mutexSemaphore,INFINITE)==WAIT_OBJECT_0){ PutProduct();ReleaseSemaphore(mutexSemaphore,1,NULL);} ReleaseSemaphore(synchSemaphore_2,1,NULL);} } }

      void Consumer(){ while(true){

      if(WaitForSingleObject(synchSemaphore_2,INFINITE)==WAIT_OBJECT_0){

      if(WaitForSingleObject(mutexSemaphore,INFINITE)==WAIT_OBJECT_0){ GetProduct();ReleaseSemaphore(mutexSemaphore,1,NULL);} ReleaseSemaphore(synchSemaphore_1,1,NULL);} ConsumeProduct();} }

      int main(){ HANDLE thread[2];DWORD threadID[2];

      synchSemaphore_1=CreateSemaphore(NULL,N,N,NULL);synchSemaphore_2=CreateSemaphore(NULL,0,N,NULL);mutexSemaphore=CreateSemaphore(NULL,1,1,NULL);

      mutexDisplay=CreateMutex(NULL,FALSE,NULL);

      printf(“Program start.Please use WinDbg to observe main thread.nPress any key to continue...n”);getchar();

      thread[0]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)(Producer),NULL,CREATE_SUSPENDED,&threadID[0]);printf(“A producer was created.Please use WinDbg to observe producer thread.nPress any key to continue...n”);getchar();

      thread[1]=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)(Consumer),NULL,CREATE_SUSPENDED,&threadID[1]);printf(“A Consumer was created.Please use WinDbg to observe Consumer thread.nPress any key to continue...n”);getchar();

      printf(“Please select:n[1]Make producer thread runn[2]Make Consumer thread runn”);bool flag=true;bool flag_1=true,flag_2=true;int count=0;while(flag){ if(getchar()=='1'&&flag_1){ ResumeThread(thread[0]);count++;flag_1=false;} else if(getchar()=='2'&&flag_2){ ResumeThread(thread[1]);count++;flag_2=false;} if(count==2)flag=false;} WaitForMultipleObjects(1,thread,TRUE,INFINITE);

      return 0;}

      2.WG.exe代碼: #include

      int main(){ int a=0;printf(“I'm Wangn”);while(true){a++;} }

      第五篇:生產(chǎn)調(diào)度小結(jié)

      作為計(jì)劃調(diào)度,時(shí)刻都要按計(jì)劃要求注意產(chǎn)品的流動(dòng)狀態(tài)。鑄造作為產(chǎn)品的始端,是否能夠按計(jì)劃完成客戶訂單起著極其重要的地位。因此每天要到鑄造車間巡視3—4次,監(jiān)督重力和低壓是否按計(jì)劃進(jìn)行生產(chǎn),對(duì)于即將發(fā)貨的型號(hào)要及時(shí)督促完成,以免影響發(fā)貨。在查看鑄造型號(hào)時(shí),有的鑄件型號(hào)刻于零件的外圈,有的位于內(nèi)邊緣。還可以從輪轂的輻條上得到型號(hào)(模具號(hào)+規(guī)格)。

      機(jī)加作為對(duì)毛坯的處理階段,要關(guān)注每天所加工的型號(hào)是否按計(jì)劃正常進(jìn)行,對(duì)于發(fā)現(xiàn)的問(wèn)題要及時(shí)告知,若有不改者及時(shí)通知其部門負(fù)責(zé)人。在機(jī)加車間巡視時(shí)不僅要關(guān)注即將發(fā)貨的型號(hào),還要注意已加工完成還未及時(shí)轉(zhuǎn)入下個(gè)工序的產(chǎn)品。若出現(xiàn)這類情況告知有關(guān)人員并及時(shí)清理。一旦出現(xiàn)問(wèn)題機(jī)加責(zé)任重大,自身疏忽監(jiān)督也難辭其咎,所以,要全面的,認(rèn)真對(duì)待自己的工作,不得有半點(diǎn)馬虎。在機(jī)加巡視時(shí),留心學(xué)習(xí)各個(gè)車輪型號(hào),要達(dá)到當(dāng)看見輪子時(shí)就能知道它屬于什么模具類型和尺寸大小

      做事要有主次,有輕重,有責(zé)任,每天要有一個(gè)清醒的任務(wù),今天要完成什么,或者什么該加緊完成,對(duì)于即將出貨的訂單型號(hào)要及時(shí)去鑄造、機(jī)加、涂裝巡視產(chǎn)品歸于何處并告知相關(guān)人員及時(shí)將此類型號(hào)的產(chǎn)品抓緊完成。

      下載第三章 處理機(jī)調(diào)度與死鎖小結(jié)word格式文檔
      下載第三章 處理機(jī)調(diào)度與死鎖小結(jié).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        工程機(jī)械調(diào)度管理工作小結(jié)

        工程機(jī)械調(diào)度管理工作小結(jié) 隨著我國(guó)經(jīng)濟(jì)的迅速發(fā)展和科學(xué)技術(shù)的進(jìn)步,國(guó)家對(duì)基礎(chǔ)工程設(shè)施建設(shè)的高度重視和強(qiáng)有力的投入,新設(shè)備,新材料,新工藝,新技術(shù)不斷出現(xiàn)并被廣泛利用,使得我......

        調(diào)度所年度個(gè)人小結(jié)

        調(diào)度所年度個(gè)人小結(jié) 調(diào)度所年度個(gè)人小結(jié)2007-02-06 09:48:56四季輪回。不知不覺,本人已在調(diào)度這個(gè)新的工作崗位上度過(guò)了平凡但卻充實(shí)的第一年。年二月末,本人從昌化操作站至調(diào)......

        電網(wǎng)調(diào)度學(xué)習(xí)小結(jié)

        電力學(xué)習(xí)總結(jié) 基層是企業(yè)穩(wěn)步發(fā)展的基礎(chǔ),基層安全生產(chǎn)更是有著舉足輕重的地位,100-1=0是無(wú)數(shù)血的教訓(xùn),這就要求一線員工高度重視安全生產(chǎn)。師傅的言傳身教感染著我,讓我對(duì)自身的......

        水庫(kù)調(diào)度個(gè)人小結(jié)

        ****年個(gè)人小結(jié) 日歷又翻過(guò)了****年,回望自己留下的那串腳印,深深淺淺,有不足,有收獲,雖沒轟轟烈烈,倒也踏踏實(shí)實(shí)。 做為****的職工,既感到光榮,也感到責(zé)任重大。年初我*動(dòng)員全廠干......

        生產(chǎn)計(jì)劃與調(diào)度管理制度

        生產(chǎn)計(jì)劃與調(diào)度管理制度 1.目的: 提高生產(chǎn)效率,實(shí)現(xiàn)準(zhǔn)時(shí)化生產(chǎn),確保市場(chǎng)需要得到有效的反應(yīng),銷售訂單得到有效的執(zhí)行,生產(chǎn)過(guò)程得到有效的控制,用戶需求得到有效的滿足。 2.......

        電力調(diào)度所某年度個(gè)人小結(jié)

        四季輪回。不知不覺,本人已在調(diào)度這個(gè)新的工作崗位上度過(guò)了平凡但卻充實(shí)的第一年。XX年二月末,本人從昌化操作站至調(diào)度所,從事調(diào)度與監(jiān)控工作。這是領(lǐng)導(dǎo)對(duì)本人的信任與培養(yǎng)。我......

        XX年度電力調(diào)度所個(gè)人小結(jié)(精選5篇)

        四季輪回。不知不覺,本人已在調(diào)度這個(gè)新的工作崗位上度過(guò)了平凡但卻充實(shí)的第一年。XX年二月末,本人從昌化操作站至調(diào)度所,從事調(diào)度與監(jiān)控工作。這是領(lǐng)導(dǎo)對(duì)本人的信任與培養(yǎng)。我......

        生產(chǎn)計(jì)劃與調(diào)度搜集資料

        JIT生產(chǎn)模式: JIT生產(chǎn)是日本豐田汽車公司根據(jù)自身的特點(diǎn),逐步創(chuàng)立的一種獨(dú)特的多品種、小批量、高質(zhì)量和低消耗制造模式的生產(chǎn)方式。JIT生產(chǎn)的基本原理來(lái)源于超級(jí)市場(chǎng)以需定供......