狠狠干影院/欧美午夜电影在线观看/高黄文/国产精品一区二区在线观看完整版

操作系統(tǒng)實(shí)驗(yàn)報(bào)告.doc

| 瀏覽次數(shù):

  實(shí)

 驗(yàn)

 報(bào)

 告

  實(shí)驗(yàn)課程:

 計(jì)算機(jī)操作系統(tǒng)

 學(xué)生姓名:

 張虹

 學(xué)

 號(hào):

  6100409033

  專(zhuān)業(yè)班級(jí):

 電氣信息類(lèi) III 091 班

 0 2010 年 年 2 12 月 月 8 18 日

 目錄

  操作系統(tǒng)安裝及其接口環(huán)境 ............................. 2 編程實(shí)現(xiàn)銀行家安全算法 ................................ 7 進(jìn)程調(diào)度算法的實(shí)現(xiàn) ................................... 16 存儲(chǔ)管理的模擬實(shí)現(xiàn) ................................... 22

  告 南昌大學(xué)實(shí)驗(yàn)報(bào)告 ---操作系統(tǒng)安裝及其接口環(huán)境 學(xué)生姓名:

 張虹

 學(xué)

 號(hào):

 6100409033

  專(zhuān)業(yè)班級(jí):

  電Ⅲ091 班

  實(shí)驗(yàn)類(lèi)型:□ 驗(yàn)證 ■ 綜合 □ 設(shè)計(jì) □ 創(chuàng)新

  實(shí)驗(yàn)日期:

 實(shí)驗(yàn)成績(jī):

  一、實(shí)驗(yàn)?zāi)康?熟悉 Windows//Linux 操作系統(tǒng)的安裝過(guò)程與安裝方法,并掌握該操作系統(tǒng)所提供的用戶(hù)接口環(huán)境,并為后續(xù)實(shí)驗(yàn)做好編程環(huán)境準(zhǔn)備。

 二、實(shí)驗(yàn)內(nèi)容 1、熟悉 Windows//Linux 操作系統(tǒng)的安裝過(guò)程與安裝方法,并掌握該操作系統(tǒng)所提供的用戶(hù)接口環(huán)境,通過(guò)系統(tǒng)提供的用戶(hù)管理程序、查看系統(tǒng)中的用戶(hù)情況、進(jìn)程、線(xiàn)程、內(nèi)存使用情況等,學(xué)會(huì)使用它進(jìn)行監(jiān)視進(jìn)程的狀況、系統(tǒng)資源的使用情況及用戶(hù)情況。并為后續(xù)實(shí)驗(yàn)做好編程環(huán)境準(zhǔn)備。

 2、用 C 語(yǔ)言編寫(xiě)一小段程序,使其可以通過(guò)某個(gè)系統(tǒng)調(diào)用來(lái)獲得 OS 提供的某種服務(wù)。

 三、實(shí)驗(yàn)要求 1. 了解所安裝的操作系統(tǒng)對(duì)軟硬件資源的具體要求; 2. 機(jī)器最低硬件配置要求; 3. 操作系統(tǒng)所提供的用戶(hù)接口環(huán)境的熟悉; 4. 了解主要 BIOS CMOS 參數(shù)的含義及其設(shè)置方法; 5. 掌握程序編寫(xiě)中系統(tǒng)調(diào)用的方法。

 四、主要實(shí)驗(yàn)步驟 1、可以通過(guò) Vmware workstation 虛擬機(jī)來(lái)模擬并記錄安裝 Windows 和 Linux 的過(guò)程,主要要準(zhǔn)備光盤(pán)(虛擬機(jī)也可使用光盤(pán)鏡像 ISO 文件或精靈虛擬光驅(qū)),若計(jì)算機(jī)已經(jīng)裝有一個(gè)操作系統(tǒng),則在安裝之前要注意:如果是使用光盤(pán)用電腦自帶光驅(qū)安裝,則安裝之前必須設(shè)定計(jì)算機(jī)的 BIOS,讓計(jì)算機(jī)從光驅(qū)啟動(dòng);若是使用 USB 光驅(qū)或者是 U 盤(pán)引導(dǎo),則要設(shè)定 BIOS 使計(jì)算機(jī)從 USB 接口啟動(dòng)。安裝系統(tǒng)主要需要輸入序列號(hào),設(shè)定管理員及使用者姓名和身份密碼。用戶(hù)可以選擇要安裝的系統(tǒng)程序(Linux 為軟件包),或者也可以在安裝完后在控制面板的添加/刪除程序中選擇。安裝方法一般來(lái)說(shuō)使用光盤(pán)直接安裝,將光盤(pán)放入光驅(qū)中,沒(méi)有光驅(qū)的電腦可以使用 USB 光驅(qū)或者使用 U 盤(pán)安裝。

 2、熟悉查看用戶(hù)的接口環(huán)境可以使用系統(tǒng)自帶的管理程序,操作如下:

 “右擊我的電腦”——“管理”——“設(shè)備管理器”,也可以“右擊我的電腦”——“屬性”——“硬件”——“設(shè)備管理器”,進(jìn)入設(shè)備管理器可以看到計(jì)算機(jī)的設(shè)備情況,包括計(jì)算機(jī)的各個(gè)接口。

 3、查看系統(tǒng)中的用戶(hù)情況、進(jìn)程、線(xiàn)程、內(nèi)存使用情況,可進(jìn)行如下操作:

 “右擊我的電腦”——“管理”——“本地用戶(hù)和組”——“用戶(hù)”,這樣就可以查看系統(tǒng)中的用戶(hù)情況,并可以對(duì)用戶(hù)進(jìn)行添加、刪除、禁用、修改等操作。

 使用任務(wù)管理器可以看到系統(tǒng)中活動(dòng)的用戶(hù)、系統(tǒng)中的進(jìn)程、線(xiàn)程和內(nèi)存的使用情況,進(jìn)行的操作如下:

 “右擊任務(wù)欄”——“任務(wù)管理器”,或者直接在鍵盤(pán)上使用 ctrl+alt+delete 的快捷鍵打開(kāi)任

 務(wù)管理器。在任務(wù)管理器中,點(diǎn)擊“進(jìn)程”就可以看見(jiàn)當(dāng)前計(jì)算機(jī)在運(yùn)行的進(jìn)程及該進(jìn)程的用戶(hù)、CPU 占用率和內(nèi)存使用情況。點(diǎn)擊“性能”即可看見(jiàn)計(jì)算機(jī)當(dāng)前 CPU 的使用、CPU 使用記錄、PF 使用率、頁(yè)面文件使用記錄和線(xiàn)程數(shù)。點(diǎn)擊“用戶(hù)”就可以看見(jiàn)當(dāng)前計(jì)算機(jī)活動(dòng)的用戶(hù)。

 4、調(diào)用系統(tǒng)服務(wù):

 打開(kāi) Microsoft Visual C++ 6.0,新建 C++ Sourse File,寫(xiě)入以下代碼:

 #include<stdlib.h> void main() {

  system("date"); } 保存,使用工具編譯,得到結(jié)果。

 五、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果 安裝 Windows Xp Sp2 的過(guò)程:

  安裝 Ubuntu Linux 10.04 的過(guò)程:

 以下是計(jì)算機(jī) Xs19 的情況,Xs19 中 Windows Xp 的設(shè)備管理器:

 Xs19 中 Windows Xp 的用戶(hù)情況:

 Xs19 的任務(wù)管理器:

 調(diào)度服務(wù)的結(jié)果:

 六、實(shí)驗(yàn)體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議 感覺(jué)這個(gè)實(shí)驗(yàn)不是光靠掌握書(shū)上內(nèi)容就能做的,平時(shí)的實(shí)踐也是非常重要的,如果對(duì)計(jì)算機(jī)非常熟悉的話(huà),這個(gè)實(shí)驗(yàn)做起來(lái)難度很小。在做的時(shí)候基本上可以完成,中間碰到一個(gè)問(wèn)題,就是對(duì)計(jì)算機(jī)有的系統(tǒng)服務(wù)不熟悉,所以要用 C 語(yǔ)言編程時(shí)感覺(jué)有點(diǎn)不知所措。

 七、參考資料 《計(jì)算機(jī)操作系統(tǒng)》(第三版)

 《計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)指導(dǎo)書(shū)》

  告 南昌大學(xué)實(shí)驗(yàn)報(bào)告 ---編程實(shí)現(xiàn)銀行家安全算法 學(xué)生姓名:

 張虹

 學(xué)

 號(hào):

 6100409033

  專(zhuān)業(yè)班級(jí):

  電Ⅲ091 班

  實(shí)驗(yàn)類(lèi)型:□ 驗(yàn)證 ■ 綜合 □ 設(shè)計(jì) □ 創(chuàng)新

  實(shí)驗(yàn)日期:

 實(shí)驗(yàn)成績(jī):

 一、實(shí)驗(yàn)?zāi)康?通過(guò)實(shí)驗(yàn)加強(qiáng)對(duì)銀行家安全算法的理解和掌握。

 二、實(shí)驗(yàn)內(nèi)容 熟悉避免死鎖發(fā)生的方法,死鎖與安全序列的關(guān)系,編程實(shí)現(xiàn)銀行家算法,要求輸出進(jìn)程的安全序列。

 三、實(shí)驗(yàn)要求 1、 需寫(xiě)出設(shè)計(jì)說(shuō)明; 2、 設(shè)計(jì)實(shí)現(xiàn)代碼及說(shuō)明 3、 運(yùn)行結(jié)果; 四、主要實(shí)驗(yàn)步驟 1、 分析銀行家算法結(jié)構(gòu); 2、 畫(huà)出銀行家算法的流程圖,即設(shè)計(jì)說(shuō)明; 3、 根據(jù)畫(huà)出的流程圖使用 C 語(yǔ)言編寫(xiě)相應(yīng)的代碼(代碼過(guò)長(zhǎng),放到最后); 程序主要由 main 函數(shù)和以下幾個(gè)函數(shù)組成:

 void input();用戶(hù)輸入銀行家算法的初始數(shù)據(jù); void output();輸出當(dāng)前系統(tǒng)資源分配情況; void change();當(dāng)請(qǐng)求資源滿(mǎn)足要求時(shí),進(jìn)行分配,系統(tǒng)資源發(fā)生改變; int check();安全性算法,檢查是否存在安全序列; void outputsafe();輸出安全序列的資源分配表。

 4、 檢查代碼,將編出的代碼編譯、鏈接,驗(yàn)證其正確性。

 開(kāi)始輸入銀行家算法初始數(shù)據(jù)執(zhí)行安全性算法數(shù)據(jù)是否正確是否存在安全序列輸入進(jìn)程Pi 發(fā)出的請(qǐng)求向量請(qǐng)求資源是否小于需求資源系統(tǒng)將資源分配給 Pi執(zhí)行算法的是否為初始數(shù)據(jù)結(jié)束資源分配無(wú)效 , 恢復(fù)分配前的系統(tǒng)資源情況輸出當(dāng)前資源分配表N NY YN NY YN NY Y輸出安全序列的資源情況是否有進(jìn)程發(fā)出請(qǐng)求向量N NY YN NY Y請(qǐng)求資源是否小于系統(tǒng)資源Y Y進(jìn)程Pi需等待N NY Y

 五、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果

  六、實(shí)驗(yàn)體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議 體會(huì):編寫(xiě)銀行家算法需要較好分析能力,C 語(yǔ)言也要掌握的很好,而且需要細(xì)心和極大地耐心。我的程序在最開(kāi)始編出來(lái)的第一份代碼編譯時(shí)大大小小一堆錯(cuò)誤,有些是一個(gè)小錯(cuò)誤導(dǎo)致了下面全錯(cuò),這些小錯(cuò)誤在一百多行里找起來(lái)非常費(fèi)勁。然后小錯(cuò)誤全部找出來(lái)以后,再編譯,錯(cuò)誤沒(méi)有了,但是得到的結(jié)果卻是錯(cuò)誤的,這樣又要開(kāi)始一行一行分析,看是哪里出了問(wèn)題。到最后得到了想要的結(jié)果以后,程序還需要修飾,至少要輸出要簡(jiǎn)潔明朗,要讓別人一運(yùn)行這個(gè)程序就知道自己在什么時(shí)候該輸入什么數(shù)據(jù),數(shù)據(jù)是什么作用,而不是只有自己知道輸進(jìn)去的是什么東西。

 七、參考資料 《計(jì)算機(jī)操作系統(tǒng)》 《C 程序設(shè)計(jì)》 《C 語(yǔ)言程序設(shè)計(jì)_現(xiàn)代方法》 八、實(shí)驗(yàn)代碼 #include <stdio.h> #include <stdlib.h> #include <string.h> int max[5][3];

 //開(kāi)始定義銀行家算法中需要用到的數(shù)據(jù) int allocation[5][3]; int need[5][3]; int available[3]; int request[5][3]; char *finish[5]; int safe[5]; int n,i,m; int k=0;

 int j=0; int work[3]; int works[5][3]; void start(); //表示程序開(kāi)始 void end(); //表示程序結(jié)束 void input(); //輸入數(shù)據(jù) void output(); //輸出數(shù)據(jù) void change(); //系統(tǒng)分配資源,原有資源情況改變 void outputsafe(); //輸出安全序列的資源分配情況 int check(); //安全性算法 void main()

 //主程序開(kāi)始 {

 start();

 for (;j==0;)

  //確認(rèn)輸入數(shù)據(jù)的正確性,若輸入錯(cuò)誤,重新輸入

 {

  input();

  printf("以下為進(jìn)程資源情況,請(qǐng)確認(rèn)其是否正確:\n");

  output();

  printf("數(shù)據(jù)是否無(wú)誤:\n 正確:輸入\n 錯(cuò)誤:輸入\n 請(qǐng)輸入:");

  scanf("%d",&j);

 }

 printf("數(shù)據(jù)確認(rèn)無(wú)誤,算法繼續(xù)。\n");

 if (check()==0)

  //若 check 函數(shù)返回值為,表示輸入的初始數(shù)據(jù)找不到安全序列,無(wú)法進(jìn)行下一步,程序結(jié)束

 {

  end();

  exit(0);

 }

 for(;j==1;)

  //當(dāng)有多個(gè)進(jìn)程請(qǐng)求資源時(shí),循環(huán)開(kāi)始

 {

  printf("請(qǐng)輸入請(qǐng)求資源的進(jìn)程 i(0、、、、):");

 //輸入發(fā)出請(qǐng)求向量的進(jìn)程及請(qǐng)求向量

  scanf("%d",&i);

  printf("請(qǐng)輸入進(jìn)程 P%d 的請(qǐng)求向量 Request%d:",i,i);

  for(n=0;n<3;n++)

 scanf("%d",&request[i][n]);

  for (;request[i][0]>need[i][0] || request[i][1]>need[i][1] || request[i][2]>need[i][2];) //若請(qǐng)求向量大于需求資源,則認(rèn)為是輸入錯(cuò)誤,要求重新輸入

  {

 printf("數(shù)據(jù)輸入有誤,請(qǐng)重試!\n 請(qǐng)輸入進(jìn)程 P%d 的請(qǐng)求向量 Request%d:",i,i);

 for(n=0;n<3;n++)

  scanf("%d",&request[i][n]);

  }

 if(request[i][0]<=available[0] && request[i][1]<=available[1] && request[i][2]<=available[2])

 //判斷系統(tǒng)是否有足夠資源提供分配

  {

 printf("系統(tǒng)正在為進(jìn)程 P%d 分配資源……\n",i);

 change();

 //分配資源

 j=0;

  }

  else

 printf("系統(tǒng)沒(méi)有足夠的資源,進(jìn)程 P%d 需要等待。\n",i);

  if (j==0)

  //j=0 表示系統(tǒng)有足夠資源分配的情況

  {

 printf("當(dāng)前系統(tǒng)資源情況如下:\n");

 //輸出分配資源后的系統(tǒng)資源分配情況

 output();

 if(check()==0)

 //若找不到安全系列,則之前的資源分配無(wú)效

 {

  printf("本次資源分配作廢,恢復(fù)原來(lái)的資源分配狀態(tài)。\n");

  for (m=0;m<3;m++)

 //恢復(fù)分配資源前的系統(tǒng)資源狀態(tài)

  {

 available[m]+=request[i][m];

 allocation[i][m]-=request[i][m];

 need[i][m]+=request[i][m];

  }

 output();

  //輸出系統(tǒng)資源狀態(tài)

 }

  }

  printf("是否還有進(jìn)程請(qǐng)求資源?\n 是:輸入\n 否:輸入\n 請(qǐng)輸入:");

  scanf("%d",&j);

 //若還有進(jìn)程請(qǐng)求資源,j=1,之前的 for 循環(huán)條件滿(mǎn)足

 }

 end(); } void line()

  //美化程序,使程序運(yùn)行時(shí)更加明朗美觀 {

 printf("------------------------------------------------------------------\n"); }

 void start()

  //表示銀行家算法開(kāi)始 {

 line();

 printf("

  銀行家算法開(kāi)始\n");

 printf("

  ——Designed by Zhang Hong\n");

 line(); }

 void end()

  //表示銀行家算法結(jié)束

 {

 line();

 printf("

  銀行家算法結(jié)束,謝謝使用\n");

 line(); }

 void input()

 //輸入銀行家算法起始各項(xiàng)數(shù)據(jù) {

  for (n=0;n<5;n++)

  {

 printf("請(qǐng)輸入進(jìn)程 P%d 的相關(guān)信息:\n",n);

 printf("Max:");

 for (m=0;m<3;m++)

  scanf("%d",&max[n][m]);

 printf("Allocation:");

 for (m=0;m<3;m++)

  scanf("%d",&allocation[n][m]);

 for (m=0;m<3;m++)

  need[n][m]=max[n][m]-allocation[n][m];

  }

 printf("請(qǐng)輸入系統(tǒng)可利用資源數(shù) Available:");

 for (m=0;m<3;m++)

  scanf("%d",&available[m]); }

 void output()

 //輸出系統(tǒng)現(xiàn)有資源情況 {

 line();

 printf("資源情況

  Max

  Allocation

 Need

 Available\n");

 printf("進(jìn)程

  A

 B

 C

 A

 B

 C

  A

 B

 C

  A

 B

 C\n");

 line();

 for(n=0;n<5;n++)

 {

  printf("P%d%9d%3d%3d%5d%3d%3d%6d%3d%3d",n,max[n][0],max[n][1],max[n][2],allocation[n][0],allocation[n][1],allocation[n][2],need[n][0],need[n][1],need[n][2]);

  if (n==0)

 printf("%6d%3d%3d\n",available[0],available[1],available[2]);

  else

 printf("\n");

 }

 line(); }

 void change()

  //當(dāng) Request[i,j]<=Available[j]時(shí),系統(tǒng)把資源分配給進(jìn)程 P[i],Available[j]和 Need[i,j]發(fā)生改變 {

 for (m=0;m<3;m++)

 {

  available[m]-=request[i][m];

  allocation[i][m]+=request[i][m];

  need[i][m]-=request[i][m];

 } }

 void outputsafe()

  //輸出安全序列的資源分配表 {

 printf("該安全序列的資源分配圖如下:\n");

 line();

 printf("資源情況

 Work

  Need

 Allocation Work+Allocation

 Finish\n");

 printf("進(jìn)程

  A

 B

 C

 A

 B

 C

 A

 B

 C

  A

 B

 C\n");

 line();

 for(n=0;n<5;n++)

  printf("P%d%9d%3d%3d%5d%3d%3d%5d%3d%3d%6d%3d%3d%12s\n",safe[n],works[safe[n]][0],works[safe[n]][1],works[safe[n]][2],need[safe[n]][0],need[safe[n]][1],need[safe[n]][2],allocation[safe[n]][0],allocation[safe[n]][1],allocation[safe[n]][2],works[safe[n]][0]+allocation[safe[n]][0],works[safe[n]][1]+allocation[safe[n]][1],works[safe[n]][2]+allocation[safe[n]][2],finish[n]);

 line(); }

 int check()

 //安全性算法 {

 printf("開(kāi)始執(zhí)行安全性算法……\n");

 for (m=0;m<3;m++)

 //數(shù)組 work 和 finish 初始化

  work[m]=available[m];

 for (n=0;n<5;n++)

 {

  finish[n]="false";

  safe[n]=0;

 }

 k=0;

 for (m=0;m<5;m++)

  for (n=0;n<5;n++)

 if(strcmp(finish[n],"false")==0 && need[n][0]<=work[0] && need[n][1]<=work[1] && need[n][2]<=work[2])

  //查找可以分配資源但尚未分配到資源的進(jìn)程

 {

  safe[k]=n;

 //以數(shù)組 safe[k]記下各個(gè)進(jìn)程得到分配的資源的順序

 works[safe[k]][0]=work[0];

  works[safe[k]][1]=work[1];

  works[safe[k]][2]=work[2];

  work[0]+=allocation[n][0];

  //進(jìn)程執(zhí)行后釋放出分配給它的資源

  work[1]+=allocation[n][1];

  work[2]+=allocation[n][2];

  finish[n]="ture"; //finish[n]變?yōu)橐允驹撨M(jìn)程完成本次分

  k++;

 }

 for (m=0;m<5;m++)

 //判斷是否所有進(jìn)程分配資源完成

 {

  if (strcmp(finish[m],"false")==0)

  {

 printf("找不到安全序列,系統(tǒng)處于不安全狀態(tài)。\n");

 return 0;

 //找不到安全序列,結(jié)束 check 函數(shù),返回

  }

  else

  if (m==4)

  //此處 m=4 表示所有數(shù)組 finish 的所有元素都為 ture

 {

  printf("找到安全序列 P%d->P%d->P%d->P%d->P%d,系統(tǒng)是安全的\n",safe[0],safe[1],safe[2],safe[3],safe[4]);

  j=1;

  outputsafe();

  //輸出安全序列的資源分配表

 }

 }

 return 1; }

  告 南昌大學(xué)實(shí)驗(yàn)報(bào)告

 ---進(jìn)程調(diào)度算法的實(shí)現(xiàn) 學(xué)生姓名:

 張虹

 學(xué)

 號(hào):

 6100409033

  專(zhuān)業(yè)班級(jí):

  電Ⅲ091 班

  實(shí)驗(yàn)類(lèi)型:□ 驗(yàn)證 ■ 綜合 □ 設(shè)計(jì) □ 創(chuàng)新

  實(shí)驗(yàn)日期:

 實(shí)驗(yàn)成績(jī):

  一、實(shí)驗(yàn)?zāi)康?通過(guò)實(shí)驗(yàn)加強(qiáng)對(duì)進(jìn)程調(diào)度算法的理解和掌握。

 二、實(shí)驗(yàn)內(nèi)容 編寫(xiě)程序?qū)崿F(xiàn)進(jìn)程調(diào)度算法,具體可以編寫(xiě)程序?qū)崿F(xiàn)先來(lái)先服務(wù)算法或優(yōu)先度高者調(diào)度算法。

 三 、實(shí)驗(yàn)要求 1、 需寫(xiě)出設(shè)計(jì)說(shuō)明; 2、 設(shè)計(jì)實(shí)現(xiàn)代碼及說(shuō)明 3、 運(yùn)行結(jié)果; 四、主要實(shí)驗(yàn)步驟 1、 分析實(shí)驗(yàn)內(nèi)容,畫(huà)出算法流程圖; 2、 根據(jù)流程圖寫(xiě)出實(shí)驗(yàn)代碼; 3、 編譯代碼,驗(yàn)證結(jié)果正確與否; 4、 對(duì)程序進(jìn)行修改,得到最后結(jié)果。

 流程圖如下:

 開(kāi)始系統(tǒng)隨機(jī)產(chǎn)生數(shù)據(jù)將數(shù)據(jù)按照到達(dá)時(shí)間從小到大排序用戶(hù)輸入數(shù)據(jù)進(jìn)程到達(dá)時(shí)前一個(gè)進(jìn)程是否已經(jīng)完成完成時(shí)間=服務(wù)時(shí)間+前一個(gè)進(jìn)程完成時(shí)間完成時(shí)間=服務(wù)時(shí)間+到達(dá)時(shí)間周轉(zhuǎn)時(shí)間=完成時(shí)間-到達(dá)時(shí)間帶權(quán)周轉(zhuǎn)時(shí)間=完成時(shí)間/服務(wù)時(shí)間是否所有進(jìn)程已完成計(jì)算輸出結(jié)果結(jié)束YNYNYN

 五、實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果

 六、實(shí)驗(yàn)體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議 在做這個(gè)實(shí)驗(yàn)的時(shí)候,一開(kāi)始以為很簡(jiǎn)單,只要做簡(jiǎn)單的加減乘除就行了,但是仔細(xì)做過(guò)以后發(fā)現(xiàn)需要考慮很多情況。比如說(shuō)輸入進(jìn)程到達(dá)時(shí)間的時(shí)候,要是亂序的該怎么辦?還有到達(dá)時(shí)間和服務(wù)時(shí)間等等定義的都是整型變量,但是帶權(quán)周轉(zhuǎn)時(shí)間確會(huì)得到小數(shù),此時(shí)就需要用到強(qiáng)制轉(zhuǎn)換。在做系統(tǒng)產(chǎn)生隨機(jī)數(shù)的時(shí)候也要考慮隨機(jī)數(shù)的范圍,如到達(dá)時(shí)間可以為0,但是服務(wù)時(shí)間卻不能為 0,否則帶權(quán)周轉(zhuǎn)時(shí)間的計(jì)算會(huì)出錯(cuò)。

 七、參考資料 《計(jì)算機(jī)操作系統(tǒng)》 《計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)指導(dǎo)書(shū)》 《C 程序設(shè)計(jì)》 《C 語(yǔ)言程序設(shè)計(jì)_現(xiàn)代方法》 八、實(shí)驗(yàn)代碼 #include <stdio.h>

 #include <stdlib.h> #include <time.h> #define N 5

  //進(jìn)程個(gè)數(shù),可改變 int rt[N];

 //到達(dá)時(shí)間 int st[N];

 //服務(wù)時(shí)間 int ct[N];

 //完成時(shí)間 int cyt[N]; //周轉(zhuǎn)時(shí)間 float rct[N]; //帶權(quán)周轉(zhuǎn)時(shí)間 float av[2]; //平均數(shù) int n,m; void start(); //表示程序開(kāi)始 void end(); //表示程序結(jié)束 void input(); //輸入數(shù)據(jù) void random(); //系統(tǒng)隨機(jī)產(chǎn)生數(shù)據(jù) void ordination(); //對(duì)數(shù)據(jù)按到達(dá)時(shí)間進(jìn)行排序 void fcfs(); //先來(lái)先服務(wù)計(jì)算 void output(); //輸出結(jié)果 void main() {

 start();

 int which;

 int c=1;

 for (;c==1;)

 {

  for (;;)

  {

 printf("輸入數(shù)據(jù)還是由系統(tǒng)隨機(jī)產(chǎn)生數(shù)據(jù)?\n1、輸入數(shù)據(jù)\t2、系統(tǒng)隨機(jī)產(chǎn)生數(shù)據(jù)\n 請(qǐng)輸入:");

 scanf("%d",&which);

 if (which==1)

 {

  input();

  break;

 }

 else

  if (which==2)

  {

 random();

 break;

  }

  else

 printf("輸入錯(cuò)誤,請(qǐng)重新輸入!");

  }

  ordination();

 //進(jìn)程按照到達(dá)時(shí)間進(jìn)行排序

 fcfs();

  output();

  printf("繼續(xù)輸入,退出輸入。請(qǐng)輸入:");

  scanf("%d",&c);

 }

 end(); } void line()

  //美化程序,使程序運(yùn)行時(shí)更加明朗美觀 {

 printf("------------------------------------------------------------------\n"); } void start()

  //表示 FCFS 算法開(kāi)始 {

 line();

 printf("

  FCFS 算法開(kāi)始\n");

 printf("

  ——Designed by Zhang Hong\n");

 line(); } void end()

  //表示 FCFS 算法結(jié)束 {

 line();

 printf("

  FCFS 算法結(jié)束,謝謝使用\n");

 line(); } void input() {

 printf("請(qǐng)輸入%d 個(gè)進(jìn)程的到達(dá)時(shí)間:",N);

 for (n=0;n<N;n++)

  scanf("%d",&rt[n]);

 printf("請(qǐng)輸入%d 個(gè)進(jìn)程對(duì)應(yīng)的服務(wù)時(shí)間:",N);

 for (n=0;n<N;n++)

  scanf("%d",&st[n]); } void random() {

 srand((unsigned)time(NULL));

 for (n=0;n<N;n++)

 {

  rt[n]=rand()%100;

  for (m=0;m<n;m++)

 if (n!=0 && rt[n]==rt[m])

 {

  rt[n]=rand()%100;

  m=0;

  }

  st[n]=rand()%98+1;

  for (m=0;m<n;m++)

 if (n!=0 && st[n]==st[m])

 {

  st[n]=rand()%98+1;

  m=0;

 }

 } } void ordination()

 //重新排序,應(yīng)對(duì)出現(xiàn)輸入的到達(dá)時(shí)間為亂序的情況 {

 int temp;

 for (n=0;n<N;n++)

  for (m=0;m<N-n-1;m++)

 if (rt[m+1]<rt[m])

 {

  temp=rt[m+1];

  rt[m+1]=rt[m];

  rt[m]=temp;

  temp=st[m+1];

  st[m+1]=st[m];

  st[m]=temp;

 } } void fcfs()

  //執(zhí)行 fcfs 算法 {

 av[0]=0;

 av[1]=0;

 ct[0]=rt[0]+st[0];

 for (n=1;n<N;n++)

 {

  if (ct[n-1]>=rt[n])

 //考慮當(dāng)前一個(gè)進(jìn)程完成而后一個(gè)進(jìn)程還沒(méi)有到達(dá)的情況

 ct[n]=ct[n-1]+st[n];

  else

 ct[n]=rt[n]+st[n];

 }

 for (n=0;n<N;n++)

  cyt[n]=ct[n]-rt[n];

 for (n=0;n<N;n++)

  rct[n]=(float)cyt[n]/(float)st[n];

 for (n=0;n<N;n++)

 {

  av[0]+=(float)cyt[n]/N;

 av[1]+=rct[n]/N;

 } } void output()

  //輸出結(jié)果 {

 line();

 printf("進(jìn)程名\t");

 for (n=0;n<N;n++)

  printf("\t%c",65+n);

 printf("\t 平均\n 到達(dá)時(shí)間");

 for (n=0;n<N;n++)

  printf("\t%d",rt[n]);

 printf("\n 服務(wù)時(shí)間");

 for (n=0;n<N;n++)

  printf("\t%d",st[n]);

 printf("\n 完成時(shí)間");

 for (n=0;n<N;n++)

  printf("\t%d",ct[n]);

 printf("\n 周轉(zhuǎn)時(shí)間");

 for (n=0;n<N;n++)

  printf("\t%d",cyt[n]);

 printf("\t%0.1f",av[0]);

 printf("\n 帶權(quán)周轉(zhuǎn)時(shí)間");

 for (n=0;n<N;n++)

  printf("\t%0.1f",rct[n]);

 printf("\t%0.1f",av[1]);

 printf("\n");

 line(); }

  南昌大學(xué)實(shí)驗(yàn)報(bào)告

 ---存儲(chǔ)管理的模擬實(shí)現(xiàn) 學(xué)生姓名:

 張虹

 學(xué)

 號(hào):

 6100409033

  專(zhuān)業(yè)班級(jí):

  電Ⅲ091 班

  實(shí)驗(yàn)類(lèi)型:□ 驗(yàn)證 ■ 綜合 □ 設(shè)計(jì) □ 創(chuàng)新

  實(shí)驗(yàn)日期:

 實(shí)驗(yàn)成績(jī):

  一、

 實(shí)驗(yàn)?zāi)康?存儲(chǔ)管理的主要功能之一是合理地分配空間。請(qǐng)求頁(yè)式管理是一種常用的虛擬存儲(chǔ)管理技術(shù)。本實(shí)驗(yàn)的目的是通過(guò)請(qǐng)求頁(yè)式存儲(chǔ)管理中頁(yè)面置換算法模擬設(shè)計(jì),了解虛擬存儲(chǔ)技術(shù)的特點(diǎn),掌握請(qǐng)求頁(yè)式管理的頁(yè)面置換算法。

 二、

 實(shí)驗(yàn)內(nèi)容 1. 過(guò)隨機(jī)數(shù)產(chǎn)生一個(gè)指令序列,共 320 條指令。其地址按下述原則生成:

 ①50%的指令是順序執(zhí)行的; ②25%的指令是均勻分布在前地址部分; ③25%的指令是均勻分布在后地址部分; 具體的實(shí)施方法是:

 A. 在[0,319]的指令地址之間隨機(jī)選區(qū)一起點(diǎn) M; B. 順序執(zhí)行一條指令,即執(zhí)行地址為 M+1 的指令; C. 在前地址[0,M+1]中隨機(jī)選取一條指令并執(zhí)行,該指令的地址為 M’; D. 順序執(zhí)行一條指令,其地址為 M’+1; E. 在后地址[M’+2,319]中隨機(jī)選取一條指令并執(zhí)行; F. 重復(fù) A—E,直到執(zhí)行 320 次指令。

 2. 指令序列變換成頁(yè)地址流,設(shè):

 (1)

 頁(yè)面大小為 1K; (2)

 用戶(hù)內(nèi)存容量為 4 頁(yè)到 32 頁(yè); (3)

 用戶(hù)虛存容量為 32K。

 在用戶(hù)虛存中,按每 K 存放 10 條指令排列虛存地址,即 320 條指令在虛存中的存放方式為:

 第 0 條—第 9 條指令為第 0 頁(yè)(對(duì)應(yīng)虛存地址為[0,9]); 第 10 條—第 19 條指令為第 1 頁(yè)(對(duì)應(yīng)虛存地址為[10,19]); 。。。。。。。。。。。。。。。。。。。。。

 第 310 條—第 319 條指令為第 31 頁(yè)(對(duì)應(yīng)虛存地址為[310,319]); 按以上方式,用戶(hù)指令可組成 32 頁(yè)。

 3. 計(jì)算并輸出下述各種算法在不同內(nèi)存容量下的命中率。

 A. FIFO 先進(jìn)先出的算法 B. LRU 最近最少使用算法 C. LFU 最少訪(fǎng)問(wèn)頁(yè)面算法 三、

 實(shí)驗(yàn)要求 1、 需寫(xiě)出設(shè)計(jì)說(shuō)明; 2、 設(shè)計(jì)實(shí)現(xiàn)代碼及說(shuō)明 3、 運(yùn)行結(jié)果;

 四、

 主要實(shí)驗(yàn)步驟 1、 分析算法結(jié)構(gòu); 2、 畫(huà)出算法的流程圖,即設(shè)計(jì)說(shuō)明; 3、 根據(jù)畫(huà)出的流程圖使用 C 語(yǔ)言編寫(xiě)相應(yīng)的代碼(代碼過(guò)長(zhǎng),放到最后); 程序主要由 main 函數(shù)和以下幾個(gè)函數(shù)組成:

 void initialization();初始化內(nèi)存數(shù)據(jù) void FIFO();FIFO 先進(jìn)先出算法; void LRU();LRU 最久未使用算法; void LFU();LFU 最近最久未使用算法; 4、 檢查代碼,將編出的代碼編譯、鏈接,驗(yàn)證其正確性。

 開(kāi)始按要求產(chǎn)生 320個(gè)隨機(jī)數(shù)將隨機(jī)數(shù)轉(zhuǎn)換成頁(yè)面用戶(hù)內(nèi)存容量i i= =4 4i i> > 32? ?FIFO 頁(yè)面置換算法LRU 頁(yè)面置換算法LFU 頁(yè)面置換算法i i= =i i+ +1 1結(jié)束N NY Y 頁(yè)面置換算法整體結(jié)構(gòu)

 開(kāi)始內(nèi)存數(shù)據(jù)初始化 , 物理塊0 0< <m m< <i i 中頁(yè)面停留時(shí)間time[ [m m ]=m m+ +1 1n n= =0 0用戶(hù)內(nèi)存中是否已存在要調(diào)用的頁(yè)面用戶(hù)內(nèi)存中是否存在空物理塊N N將頁(yè)面調(diào)入空物理塊中 , 該物理塊time[ [m m ]=0 0比較所有物理塊的time[ [m m] ] , 找到最大值 ,將頁(yè)面調(diào)入最大值所在物理塊 , 該物理塊time[ [m m ]=0 0所有已經(jīng)存入頁(yè)面的內(nèi)存 time[ [m m ]++ ,n n ++N NY YY Yn n> > 320? ?結(jié)束將頁(yè)面p p[ [n n] ] 調(diào)入內(nèi)存Y YN N FIFO 頁(yè)面置換算法

 開(kāi)始內(nèi)存數(shù)據(jù)初始化 , 物理塊0 0< <m m< <i i 中頁(yè)面停留時(shí)間time[ [m m ]=m m+ +1 1n n= =0 0用戶(hù)內(nèi)存中是否已存在要調(diào)用的頁(yè)面用戶(hù)內(nèi)存中是否存在空物理塊N N將頁(yè)面調(diào)入空物理塊中 , 該物理塊time[ [m m ]=0 0比較所有物理塊的time[ [m m] ] , 找到最大值 ,將頁(yè)面調(diào)入最大值所在物理塊 , 該物理塊time[ [m m ]=0 0所有已經(jīng)存入頁(yè)面的內(nèi)存 time[ [m m ]++ ,n n ++N NY YY Yn n> > 320? ?結(jié)束將頁(yè)面p p[ [n n] ] 調(diào)入內(nèi)存Y YN N存在該頁(yè)面的物理塊timg[ [m m ]=0 0 LRU 頁(yè)面置換算法

 開(kāi)始內(nèi)存數(shù)據(jù)初始化 , 物理塊0 0< <m m< <i i 中頁(yè)面停留時(shí)間time[ [m m ]=m m+ +1 1n n= =0 0n n> > 50? ?將頁(yè)面p p[ [n n] ] 調(diào)入內(nèi)存比較物理塊中頁(yè)面在之前的 50 次調(diào)用中出現(xiàn)的次數(shù) , 將頁(yè)面p p[ [n n] ] 調(diào)入使用最少的頁(yè)面占用的物理塊n n> > 320? ?結(jié)束按照 LRU 頁(yè)面置換算法調(diào)入頁(yè)面n n ++Y YN NY YN N LFU 頁(yè)面置換算法

 五、

 實(shí)驗(yàn)數(shù)據(jù)及處理結(jié)果

 六、

 實(shí)驗(yàn)體會(huì)或?qū)Ω倪M(jìn)實(shí)驗(yàn)的建議 我做實(shí)驗(yàn)的時(shí)候,主要的難度是在幾個(gè)特殊情況的處理上,如 LRU 內(nèi)存中的頁(yè)面都是之前沒(méi)有調(diào)用過(guò)的,那怎么辦,還有就是 LFU 中還沒(méi)有達(dá)到“一定時(shí)間間隔”的條件時(shí)怎么辦?另外就是由于實(shí)驗(yàn)使用的是系統(tǒng)產(chǎn)生的隨機(jī)數(shù),所以難以驗(yàn)證實(shí)驗(yàn)結(jié)果的正確性。

 實(shí)驗(yàn)產(chǎn)生隨機(jī)指令的方法是:

 1、 在[0,319]的指令地址之間隨機(jī)選區(qū)一起點(diǎn) M; 2、 順序執(zhí)行一條指令,即執(zhí)行地址為 M+1 的指令; 3、 在前地址[0,M+1]中隨機(jī)選取一條指令并執(zhí)行,該指令的地址為 M’; 4、 順序執(zhí)行一條指令,其地址為 M’+1; 5、 在后地址[M’+2,319]中隨機(jī)選取一條指令并執(zhí)行; 6、 重復(fù) A—E,直到執(zhí)行 320 次指令。

 那么,產(chǎn)生的第一個(gè)隨機(jī)起點(diǎn) M 指令是否執(zhí)行?這對(duì)結(jié)果影響比較大,若起點(diǎn) M 執(zhí)行,那么命中率至少能提高 0.2 以上!

 七、

 參考資料 《計(jì)算機(jī)操作系統(tǒng)》 《計(jì)算機(jī)操作系統(tǒng)實(shí)驗(yàn)指導(dǎo)書(shū)》 《C 程序設(shè)計(jì)》 《C 語(yǔ)言程序設(shè)計(jì)_現(xiàn)代方法》 《計(jì)算機(jī)操作系統(tǒng)教程習(xí)題解答與實(shí)驗(yàn)指導(dǎo)(第二版)》 八、

 實(shí)驗(yàn)代碼 #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 320 #define M 32 #define R 32 #define runtime 100 //程序運(yùn)行次數(shù),保證結(jié)果的準(zhǔn)確性 int run; float average[3][32]; //取平均數(shù),使結(jié)果更加準(zhǔn)確 int s,i; //s表示產(chǎn)生的隨機(jī)數(shù),i表示物理塊數(shù) int m,n,h; //循環(huán)專(zhuān)用 int k,g,f; int sum; //缺頁(yè)次數(shù) float r; //rate命中率 int p[N]; //page頁(yè)數(shù) int a[N]; //執(zhí)行的指令 int pb[M]; //physical block用戶(hù)內(nèi)存容量(物理塊)

 void FIFO(); void LRU(); void LFU(); void line(); void start(); void end(); void main() {

 start();

 srand((int) time (NULL)); //以計(jì)算機(jī)當(dāng)前時(shí)間作為隨機(jī)數(shù)種子

 for (run=0;run<runtime;run++) //共產(chǎn)生“runtime”次隨機(jī)數(shù),保證結(jié)果的準(zhǔn)確性

 {

  for (n=0;n<N;n+=3)

  {

 s=rand()%N+0; //隨機(jī)產(chǎn)生一條指令

 a[n]=s+1; //順序執(zhí)行一條指令

  s=rand()%(a[n]+1); //執(zhí)行前地址指令M`

 a[n+1]=s+1;

 s=rand()%(N-a[n+1]-1)+(a[n+1]+1);

 a[n+2]=s;

  }

  for (n=0;n<N;n++)

 p[n]=a[n]/10; //得到指令相對(duì)的頁(yè)數(shù)

  for (i=4;i<=32;i++)

  {

 FIFO();

 LRU();

 LFU();

  }

 }

 printf("物理塊數(shù)\t FIFO\t\t LRU\t\t LFU\n");

 line();

 for (i=4;i<=32;i++)

 {

  printf("\n

 %2d:",i);

  for (m=0;m<3;m++)

 printf("\t\t%6.4f",average[m][i]); //輸出“runtime”次運(yùn)行后的平均數(shù)

 }

 end(); } void initialization() //用戶(hù)內(nèi)存及相關(guān)數(shù)據(jù)初始化 {

 for (n=0;n<M;n++)

  pb[n]=-1;

 sum=0;

 r=0;

 k=0;

 g=-1;

 f=-1; }

 void FIFO() //先進(jìn)先出置換算法 {

 int time[M]; //定義進(jìn)入內(nèi)存時(shí)間長(zhǎng)度數(shù)組

 int max; //max表示進(jìn)入內(nèi)存時(shí)間最久的,即最先進(jìn)去的

 initialization();

 for(m=0;m<i;m++)

  time[m]=m+1;

 for (n=0;n<N;n++)

 {

 k=0;

  for (m=0;m<i;m++)

 if (pb[m]==p[n]) //表示內(nèi)存中已有當(dāng)前要調(diào)入的頁(yè)面

 {

  g=m;

  break;

 }

  for (m=0;m<i;m++)

 if (pb[m]==-1) //用戶(hù)內(nèi)存中存在空的物理塊

 {

  f=m;

  break;

 }

  if (g!=-1)

 g=-1;

  else

  {

 if (f==-1) //找到最先進(jìn)入內(nèi)存的頁(yè)面

 {

  max=time[0];

  for(m=0;m<i;m++)

 if(time[m]>max)

 {

  max=time[m];

  k=m;

 }

  pb[k]=p[n];

  time[k]=0; //該物理塊中頁(yè)面停留時(shí)間置零

  sum++; //缺頁(yè)數(shù)+1

 }

 else

 {

  pb[f]=p[n];

  time[f]=0;

  sum++;

  f=-1;

 }

  }

  for (m=0;m<i && pb[m]!=-1;m++)

 time[m]++; //物理塊中現(xiàn)有頁(yè)面停留時(shí)間+1

  /*if (n==0 && i==6)

 printf("\n");

  if (i==6 && n<=30)

  {

  printf("%d......",p[n]);

 for (m=0;m<i;m++)

  printf("%d ",pb[m]);

 printf("\n");

  }*/

 }

 r=1-(float)sum/N;

 average[0][i]+=r/runtime; }

 void LRU() //最近最少使用算法 {

 int time[M];

 int max;

 initialization();

 for (m=0;m<i;m++)

  time[m]=m+1;

 for (n=0;n<N;n++)

 {

  k=0;

  for (m=0;m<i;m++)

 if (pb[m]==p[n])

 {

  g=m;

  break;

 }

  for (m=0;m<i;m++)

 if (pb[m]==-1)

 {

  f=m;

  break;

 }

  if (g!=-1)

  {

 time[g]=0;

 g=-1;

  }

  else

  {

 if (f==-1)

 {

  max=time[0];

  for (m=0;m<i;m++)

 if (time[m]>max)

  {

  k=m;

  max=time[m];

 }

 pb[k]=p[n];

 time[k]=0;

 sum++;

 }

 else

 {

  pb[f]=p[n];

  time[f]=0;

  sum++;

  f=-1;

 }

  }

  for (m=0;m<i && pb[m]!=-1;m++)

 time[m]++;

 }

 r=1-(float)sum/N;

 average[1][i]+=r/runtime; }

 void LFU() //最少訪(fǎng)問(wèn)頁(yè)面算法 {

 initialization();

 int time_lru[M],time[M],min,max_lru,t;

 for (m=0;m<i;m++)

 {

  time[m]=0;

  time_lru[m]=m+1;

 }

 for (n=0;n<N;n++)

 {

  k=0;

  t=1;

  for (m=0;m<i;m++)

 if (pb[m]==p[n])

 {

  g=m;

  break;

 }

  for (m=0;m<i;m++)

 if (pb[m]==-1)

  {

  f=m;

  break;

 }

  if (g!=-1)

  {

 time_lru[g]=0;

 g=-1;

  }

  else

  {

 if (f==-1)

 {

  if (n<=R) //將最少使用的間隔時(shí)間定位為R個(gè)單位

  {

 max_lru=time_lru[0]; //在未達(dá)到“一定時(shí)間”的要求時(shí),先采用LRU進(jìn)行頁(yè)面置換

 for (m=0;m<i;m++)

  if (time_lru[m]>max_lru)

  {

 k=m;

 max_lru=time_lru[m];

  }

  pb[k]=p[n];

  time_lru[k]=0;

  sum++;

  }

  else

  {

 for (m=0;m<i;m++) //計(jì)算一定時(shí)間間隔內(nèi)物理塊中的頁(yè)面使用次數(shù)

  for (h=n-1;h>=n-R-1;h--)

 if (pb[m]==p[h])

  time[m]++;

 min=time[0];

 for (m=0;m<i;m++)

  if (time[m]<min)

  {

 min=time[m];

 k=m;

  }

 for (m=0;m<i;m++) //應(yīng)對(duì)出現(xiàn)頁(yè)面使用次數(shù)同樣少的情況

  if (time[m]==min)

 t++;

  if (t>1) //若使用次數(shù)同樣少,將次數(shù)相同的頁(yè)面按照LRU進(jìn)行頁(yè)面置換

 {

  max_lru=time_lru[k];

  for (m=0;m<i && time[m]==min;m++)

 if (time_lru[m]>max_lru)

 {

  k=m;

  max_lru=time_lru[m];

 }

 }

 pb[k]=p[n];

 time_lru[k]=0;

 sum++;

  }

 }

 else

 {

  pb[f]=p[n];

  time_lru[f]=0;

  sum++;

  f=-1;

 }

  }

  for (m=0;m<i && pb[m]!=-1;m++)

 time_lru[m]++;

 }

 r=1-(float)sum/N;

 average[2][i]+=r/runtime; } void line()

  //美化程序,使程序運(yùn)行時(shí)更加明朗美觀 {

 printf("------------------------------------------------------------------"); } void start()

  //表示算法開(kāi)始 {

 line();

 printf("\n

  頁(yè)面置換算法開(kāi)始\n");

 printf("

  ——Designed by Zhang Hong\n");

 line();

 printf("\n\n"); } void end()

  //表示算法結(jié)束 {

  printf("\n");

 line();

 printf("\n

  頁(yè)面置換算法結(jié)束,謝謝使用\n");

 line(); }

推薦訪(fǎng)問(wèn): 操作系統(tǒng) 實(shí)驗(yàn) 報(bào)告

【操作系統(tǒng)實(shí)驗(yàn)報(bào)告.doc】相關(guān)推薦

工作總結(jié)最新推薦

NEW
  • 同志們:今天這個(gè)大會(huì),是市委全面落實(shí)黨要管黨、從嚴(yán)治黨要求的一項(xiàng)重大舉措,也是對(duì)縣市區(qū)委書(shū)記履行基層黨建工作第一責(zé)任人情況的一次集中檢閱,同時(shí)是對(duì)全市基層黨建工作的一次再部署、再落實(shí)的會(huì)議。前面,**

  • ***年,我認(rèn)真履行領(lǐng)班子、帶隊(duì)伍、抓黨員、保穩(wěn)定的基層黨建工作思路,以學(xué)習(xí)貫徹習(xí)近平新時(shí)代中國(guó)特色社會(huì)主義思想和黨的十九大歷次全會(huì)精神為主線(xiàn),以市局基層黨建工作考核細(xì)則為落腳點(diǎn),落實(shí)全面從嚴(yán)治黨主體

  • 根據(jù)會(huì)議安排,現(xiàn)將2022年履行抓基層黨建工作職責(zé)情況報(bào)告如下:一、履職工作特色和亮點(diǎn)1 突出政治建設(shè),著力在思想認(rèn)識(shí)上提高。牢固樹(shù)立抓黨建就是抓政績(jī)的理念,以“黨建工作抓引領(lǐng)、社區(qū)治理求突破,為民服

  • 2022年以來(lái),在**黨委的正確領(lǐng)導(dǎo)下,堅(jiān)持以習(xí)近平新時(shí)代中國(guó)特色社會(huì)主義思想為指導(dǎo),深入學(xué)習(xí)宣傳貫徹黨的二十大精神,以黨建工作為統(tǒng)領(lǐng),扎實(shí)開(kāi)展夯實(shí)“三個(gè)基本”活動(dòng),以“四化四力”行動(dòng)為抓手,聚力創(chuàng)建

  • 各位領(lǐng)導(dǎo),同志們:根據(jù)會(huì)議安排,現(xiàn)就2022年度抓基層黨建工作情況匯報(bào)如下:一、主要做法及成效(一)強(qiáng)化政治引領(lǐng)。一是不斷強(qiáng)化理論武裝。堅(jiān)持通過(guò)黨組會(huì)、中心組學(xué)習(xí)會(huì)和“三會(huì)一課”,第一時(shí)間、第一議題學(xué)

  • 2022年度抓基層黨建工作述職報(bào)告按照黨委工作部署,現(xiàn)將本人2022年度抓基層黨建工作情況報(bào)告如下:一、2022年度抓基層黨建工作情況(一)旗幟鮮明講政治將旗幟鮮明講政治放在全局發(fā)展首要位置,積極開(kāi)展

  • 2022年,是我在數(shù)計(jì)系黨總支書(shū)記這個(gè)新崗位上度過(guò)的第一個(gè)完整的工作年度。回首一年來(lái)在校黨委的正確領(lǐng)導(dǎo)下,與數(shù)計(jì)系領(lǐng)導(dǎo)班子和全體師生共同走過(guò)的日子,艱辛歷歷在目,收獲溫潤(rùn)心田。作為黨總支書(shū)記,我始終牢

  • 按照考核要求,現(xiàn)將本人一年來(lái),作為統(tǒng)戰(zhàn)部長(zhǎng)履行職責(zé)、廉潔自律等方面情況報(bào)告如下:一、著眼增強(qiáng)政治素質(zhì),不斷深化理論學(xué)習(xí)堅(jiān)持把旗幟鮮明講政治作為履職從政的第一位要求,帶領(lǐng)統(tǒng)戰(zhàn)系統(tǒng)干部堅(jiān)決擁護(hù)“兩個(gè)確立”

  • **年,緊緊圍繞黨工委、管委會(huì)的決策部署,全體人員團(tuán)結(jié)協(xié)作、凝心聚力,緊扣黨工委“**”基本工作思路,全力開(kāi)拓進(jìn)取,認(rèn)真履職盡責(zé),圓滿(mǎn)完成各項(xiàng)工作任務(wù)。一、個(gè)人思想政治狀況檸檬文苑www bgzjy

  • 按照縣委關(guān)于開(kāi)展抓基層黨建述職評(píng)議會(huì)議的有關(guān)要求,經(jīng)請(qǐng)示縣委組織部同意,今天,我們?cè)诖苏匍_(kāi)2022年度基層黨組織書(shū)記抓基層黨建述職評(píng)議會(huì)議。1 首先,請(qǐng)**黨委書(shū)記,**同志述職。**黨委能夠主動(dòng)研究