国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

操作系統(tǒng)原理及安全 3-并發(fā)程序設(shè)計(jì)(綜合型)

這篇具有很好參考價(jià)值的文章主要介紹了操作系統(tǒng)原理及安全 3-并發(fā)程序設(shè)計(jì)(綜合型)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

  • 實(shí)驗(yàn)?zāi)康?/strong>

1、熟悉并發(fā)程序?qū)嶒?yàn)工具BACI。

2、掌握BACC和BAINTERP的使用。

3、熟悉信號量的同步控制機(jī)制。

二、實(shí)驗(yàn)軟硬件要求

??1、CPU:P4 1.6GHz?? 內(nèi)存:4G

? 2、Windows平臺上的Linux虛擬機(jī)

  • 實(shí)驗(yàn)內(nèi)容

(1)完成Linux系統(tǒng)的登錄,啟動進(jìn)入終端。

編程步驟:

?? cd baci/balnxxe

?? 編寫程序文件命令:gedit my.cm (程序源碼請看第(2)題,需要你補(bǔ)充缺失的代碼。)

?? 編譯命令:$./bacc my,生成my.pco文件;

運(yùn)行:./bainterp my.pco,? 得到并分析結(jié)果。

(2)用信號量實(shí)現(xiàn)進(jìn)程同步時(shí),通常設(shè)置與進(jìn)程相關(guān)的私有信號量。empty和full分別屬于生產(chǎn)者和消費(fèi)者進(jìn)程私有,即生產(chǎn)者要問是否empty,才能開始生產(chǎn);同理,消費(fèi)者要問是否full才能消費(fèi)。 用信號量mutex實(shí)現(xiàn)進(jìn)程互斥,互斥使用緩沖池,其初值=1;

操作系統(tǒng)原理及安全 3-并發(fā)程序設(shè)計(jì)(綜合型),操作系統(tǒng)原理及安全,經(jīng)驗(yàn)分享,linux,安全

請將下面的并發(fā)程序填寫完整,或自行編寫并發(fā)程序。

參考程序:pc.cm

semaphore mutex=1;????????????????????? //緩沖池互斥信號量

semaphore full=0;?????????????????????? //滿緩沖區(qū)個(gè)數(shù)信號量,初值=0

semaphore em=7;?????????? ??????????????//空緩沖區(qū)個(gè)數(shù)信號量,初值=7

int in=0;int out=0;????????????????????

int buff[6];??????????????????????????? //緩沖池

void p1()

{?? int nextp; while(1)

? { cin>>nextp;???????????????????????? //生產(chǎn)一個(gè)產(chǎn)品

??? p(em);

??? //填寫代碼

???? buff[in]=nextp;??????????? ???????

??? cout <<"in="<<in<<endl;

??? //填寫代碼;

??? cout <<"nextp="<<nextp<<endl;

?? v(mutex);

? //填寫代碼;

?? }

? }//producer

void c1()

{? int nextc;???????????????????????

? while(1)

? {

??? //填寫代碼;

??? p(mutex);

??

?? //填寫代碼

?? out=(out+1)%6;

?? cout <<"nextc="<<nextc<<endl;

? ?//填寫代碼;

?? v(em);

? }

}//consumer

void main()

{ cobegin{? p1();c1(); }

}

完整代碼:

semaphore mutex=1;

semaphore full=0;

semaphore em=7;

int in=0;int out=0;

int buff[6];

void p1(){

?? int nextp;

?? while(1){

?????? cin>>nextp;

?????? p(em);

?????? p(mutex);

?????? buff[in]=nextp;

?????? cout<<"in="<<in<<endl;

?????? in=(in+1)%6;

?????? cout<<"nextp="<<nextp<<endl;

?????? v(mutex);

?????? v(full);

?? }

}

void c1(){

?? int nextc;

?? while(1){

?????? p(full);

?????? p(mutex);

?????? nextc=buff[out];

?????? out=(out+1)%6;

?????? cout<<"nextc="<<nextc<<endl;

?????? v(mutex);

?????? v(em);

?? }

}//consumer

void main(){

cobegin{

?? p1();

?? c1();

?? }

}

操作系統(tǒng)原理及安全 3-并發(fā)程序設(shè)計(jì)(綜合型),操作系統(tǒng)原理及安全,經(jīng)驗(yàn)分享,linux,安全

(3)有父親、母親、兒子、女兒4個(gè)進(jìn)程,共享一個(gè)盤子,父親每次在盤子中放入一個(gè)蘋果,盤子中的蘋果只能由女兒取出;母親每次向盤子放入一個(gè)桔子,桔子只能由兒子取出,假設(shè)盤子內(nèi)能裝一個(gè)水果。編程:apple.cm

1)編寫用信號量機(jī)制實(shí)現(xiàn)父親等4個(gè)進(jìn)程的并發(fā)控制程序;

2)在BACI環(huán)境中運(yùn)行并分析結(jié)果。

semaphore mutex=1;

semaphore plat=1;

semaphore apple=0;

semaphore orange=0 ;

int ap=0;int or=0;int pl=1;

void father(){

??? int num;

??? while(1){

??? p(plat);

??? p(mutex);

??? cin>>num;

??? cout<<"father put on apple "<<num<<endl;

??? v(apple);

??? ap++;

??? pl--;

??? v(mutex);

??

}

}

void monther(){

??? int num;

??? while(1){

??? p(plat);

??? p(mutex);

??? cin>>num;

??? cout<<"monther put on orange "<<num<<endl;

??? v(orange);

??? or++;

??? pl--;

?? ?v(mutex);

??

??

}

}

void son(){

??? int num;

??? while(1){

??? p(orange);

??? p(mutex);

??? cout<<"son take out a orange"<<endl;

??? v(plat);

??? or--;

??? pl++;

??? cout<<"orange="<<or<<endl;

??? cout<<"plat="<<pl<<endl;

??? v(mutex);

???

???

???????

}

}

void daughter(){

??? int num;

??? while(1){

???

??? p(apple);

??? p(mutex);

??? cout<<"daughter take out a apple"<<endl;

??? v(plat);

??? ap--;

??? pl++;

??? cout<<"apple="<<ap<<endl;

??? cout<<"plat="<<pl<<endl;

??? v(mutex);

???

?????? ?

}

}

void main(){

?? cobegin{

?? father();

?? daughter();

?? monther();

?? son();

??

??

}

}

操作系統(tǒng)原理及安全 3-并發(fā)程序設(shè)計(jì)(綜合型),操作系統(tǒng)原理及安全,經(jīng)驗(yàn)分享,linux,安全

三、實(shí)驗(yàn)結(jié)果分析

(對上述實(shí)驗(yàn)內(nèi)容中的各題結(jié)果,進(jìn)行分析討論。并回答下列問題)

  1. 簡述用信號量控制互斥問題時(shí)的編程設(shè)置。

當(dāng)進(jìn)程互斥時(shí)或者涉及臨界資源的爭奪時(shí),應(yīng)該遵循前P后V的信號量設(shè)置原則

  1. 簡述用信號量控制同步問題時(shí)的編程設(shè)置。

當(dāng)進(jìn)程同步時(shí),應(yīng)該遵循前V后P的原則,即先發(fā)生的進(jìn)程完成后設(shè)置V信號量,后發(fā)生的進(jìn)程發(fā)生前設(shè)置P信號量,同時(shí)注意,PV信號量應(yīng)該成對出現(xiàn)。

四、總結(jié):你對本次實(shí)驗(yàn)有什么體會或看法。

分析信號量問題時(shí),應(yīng)該先進(jìn)行關(guān)系分析,找出同步和互斥的關(guān)系,根據(jù)同步關(guān)系前V后P ,互斥關(guān)系前P后V的原則對信號量進(jìn)行設(shè)置。

注意:偽代碼中設(shè)置的semaphore是信號量,只能用PV進(jìn)行加減,不能使用++或—進(jìn)行操作。

附BACI工具說明:

BACI提供了一個(gè)可以編寫并發(fā)程序的環(huán)境,在這個(gè)平臺上,我們可以很容易的模擬程序的并發(fā)執(zhí)行,在這種并行的編譯環(huán)境中,可以把BACI中的一些語句嵌入到C++,C,Java等高等程序中,使程序可以并行執(zhí)行 .

  基于C++的BACI語法(C—BACI Compiler)

  該語法結(jié)構(gòu)是在C++語法結(jié)構(gòu)的基礎(chǔ)上,增加一些并發(fā)語句擴(kuò)展而來,下面是在試驗(yàn)中需要用到的函數(shù)解釋.

1. cobegin函數(shù)

  在BACI系統(tǒng)中,并發(fā)進(jìn)程與并發(fā)線程同步,多個(gè)進(jìn)程可以并發(fā)的在cobegin 塊中來并發(fā)執(zhí)行,該函數(shù)必須在主函數(shù)中,語法結(jié)構(gòu)為:

  cobegin {

  proc1(...);proc2(...);. . . . procN(...);

  }

其中每個(gè)進(jìn)程并發(fā)隨機(jī)執(zhí)行,每次執(zhí)行的順序可能會不一樣,當(dāng)所有的進(jìn)程接受后,該函數(shù)結(jié)束。

2. Semaphores/Binarysem

  信號量的(Semaphores)機(jī)制可以更方便的實(shí)現(xiàn)進(jìn)程同步,Semaphores是一種如C中”int”一樣的類型,可以用來定義信號量類型的變量,Binarysem是一種二進(jìn)制信號量,它所定義的變量只能取1或 0,用來表示互斥。

1)信號量的聲明和初始化

  semaphores a;

  binarysem s;

上面聲明了兩個(gè)信號量a,b,其中b為二進(jìn)制信號量信號量按如下方式初始化:

  Initialsem(semaphores,interger);

  Initialsem(binarysem,0/1);

2)P(wait)/V(signal)函數(shù)

  強(qiáng)大的PV操作與信號量一次很方便的解決了并發(fā)進(jìn)程同步與互斥問題

  函數(shù)原型:

  void p(semaphores &s); or void wait(semaphores &s);

  void v(semaphores &s); or void signal(semaphores &s);

  函數(shù)說明:

  p(sem): 如果sem > 0,則sem減1,調(diào)用P的進(jìn)程可以繼續(xù)執(zhí)行,如果sem=0,則該進(jìn)程阻塞,該函

  數(shù)操作是原子性的.

  v(sem): 如果v=0,或有進(jìn)程阻塞,則將其喚醒,如果沒有進(jìn)程等待,將sem加1,在任何時(shí)候調(diào)用

  v的進(jìn)程可以繼續(xù)執(zhí)行,其操作也是原子的.

3.atomic

  atomic關(guān)鍵字定義了原子操作,即該函數(shù)操作不可剝奪,每次只能一個(gè)進(jìn)程訪問

  用法:在要原子執(zhí)行的函數(shù)前加atomic即可,如:

  atomic int sum(){

  . . . ..

  }

  則sum()函數(shù)就可以原子操作了

4.void suspend(void)

  suspend函數(shù)將調(diào)用的線程掛起

5.void revive (int process_number)

  該函數(shù)用于喚醒某個(gè)進(jìn)程,其進(jìn)程號為process_number

6.cin可以連續(xù)從鍵盤讀取想要的數(shù)據(jù),以空格、tab或換行作為分隔符。文章來源地址http://www.zghlxwxcb.cn/news/detail-741752.html

到了這里,關(guān)于操作系統(tǒng)原理及安全 3-并發(fā)程序設(shè)計(jì)(綜合型)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 學(xué)習(xí)操作系統(tǒng)的必備教科書《操作系統(tǒng):原理與實(shí)現(xiàn)》| 文末贈書4本

    學(xué)習(xí)操作系統(tǒng)的必備教科書《操作系統(tǒng):原理與實(shí)現(xiàn)》| 文末贈書4本

    使用了6年的實(shí)時(shí)操作系統(tǒng),是時(shí)候梳理一下它的知識點(diǎn)了 摘要: 本文簡單介紹了博主學(xué)習(xí)操作系統(tǒng)的心路歷程,同時(shí)還給大家總結(jié)了一下當(dāng)下流行的幾種實(shí)時(shí)操作系統(tǒng),以及在工程中OSAL應(yīng)該如何設(shè)計(jì)。希望對大家有所啟發(fā)和幫助。 操作系統(tǒng)一直伴隨著我的工作,早些年我

    2023年04月08日
    瀏覽(20)
  • 1.2 操作系統(tǒng)原理和常見命令

    操作系統(tǒng)原理 操作系統(tǒng)的概述: 定義:操作系統(tǒng)是控制和管理計(jì)算機(jī)硬件與軟件資源,提供應(yīng)用程序和用戶訪問的系統(tǒng)軟件。 功能:進(jìn)程管理、內(nèi)存管理、文件系統(tǒng)、設(shè)備管理、安全性等。 作用:協(xié)調(diào)和優(yōu)化計(jì)算機(jī)資源,提供統(tǒng)一的接口給應(yīng)用程序。 角色:操作系統(tǒng)在計(jì)

    2024年02月13日
    瀏覽(21)
  • Mac使用PD虛擬機(jī)安裝win10提示安全啟動功能發(fā)現(xiàn)未經(jīng)授權(quán)更改固件、操作系統(tǒng)或 UEFI 驅(qū)動程序。若要進(jìn)行安全啟動設(shè)置管理,請選擇虛擬機(jī)配置設(shè)置,單擊硬件,并展開高級設(shè)置。

    Mac使用PD虛擬機(jī)安裝win10提示安全啟動功能發(fā)現(xiàn)未經(jīng)授權(quán)更改固件、操作系統(tǒng)或 UEFI 驅(qū)動程序。若要進(jìn)行安全啟動設(shè)置管理,請選擇虛擬機(jī)配置設(shè)置,單擊硬件,并展開高級設(shè)置。

    ????????Mac使用PD虛擬機(jī)安裝win10提示安全啟動功能發(fā)現(xiàn)未經(jīng)授權(quán)更改固件、操作系統(tǒng)或 UEFI 驅(qū)動程序。若要進(jìn)行安全啟動設(shè)置管理,請選擇虛擬機(jī)配置設(shè)置,單擊硬件,并展開高級設(shè)置。 ? ????????PD 虛擬機(jī)中的 TPM 芯片是一種安全芯片,它可以提供基于硬件的加密和

    2024年04月16日
    瀏覽(27)
  • 信創(chuàng)操作系統(tǒng)--麒麟Kylin桌面操作系統(tǒng) (項(xiàng)目十 安全中心)

    信創(chuàng)操作系統(tǒng)--麒麟Kylin桌面操作系統(tǒng) (項(xiàng)目十 安全中心)

    信創(chuàng)操作系統(tǒng)–麒麟Kylin桌面操作系統(tǒng) (項(xiàng)目十 安全中心) 安全中心是由麒麟安全團(tuán)隊(duì)開發(fā)的一款系統(tǒng)安全管理程序,其首頁包含【賬戶安全】、【安全體檢】、【病毒防護(hù)】、【網(wǎng)絡(luò)保護(hù)】與【應(yīng)用控制與保護(hù)】五個(gè)模塊,系統(tǒng)已默認(rèn)安裝。 單擊【開始菜單】按鈕,通過鼠

    2024年02月04日
    瀏覽(31)
  • 計(jì)算機(jī)操作系統(tǒng)原理期末總復(fù)習(xí)

    計(jì)算機(jī)操作系統(tǒng)原理期末總復(fù)習(xí)

    1、現(xiàn)代操作系統(tǒng)的四個(gè)特征是什么?(4分) 并發(fā)、共享、虛擬、異步 并發(fā) :兩個(gè)或多個(gè)事件在 同一時(shí)間間隔內(nèi) 發(fā)生。 共享 :內(nèi)存中多個(gè)并發(fā)執(zhí)行的進(jìn)程共同使用系統(tǒng)中的資源。 2、操作系統(tǒng)內(nèi)核的四個(gè)主要功能是什么?(4分) 內(nèi)存管理、進(jìn)程管理、設(shè)備管理、文件管理

    2024年02月10日
    瀏覽(94)
  • 操作系統(tǒng)原理 —— 文件的邏輯結(jié)構(gòu)(二十三)

    操作系統(tǒng)原理 —— 文件的邏輯結(jié)構(gòu)(二十三)

    這里說的 邏輯結(jié)構(gòu) ,就是指在用戶看來,文件內(nèi)部的數(shù)據(jù)應(yīng)該是如何組織起來的,而 物理結(jié)構(gòu) 指的是在操作系統(tǒng)看來,文件的數(shù)據(jù)是如何被存放的。 從 邏輯結(jié)構(gòu) 結(jié)構(gòu)來看,我們可以打開一個(gè)記事本,里面的文字內(nèi)容從用戶的角度來看就是無結(jié)構(gòu)的,但是又從 Excel 來看,

    2024年02月08日
    瀏覽(19)
  • Windows操作系統(tǒng)AD域服務(wù)器簡介、原理及 搭建操作

    Windows操作系統(tǒng)AD域服務(wù)器簡介、原理及 搭建操作

    1.1 AD 簡介 域(Domain)是Windows網(wǎng)絡(luò)中獨(dú)立運(yùn)行的單位,域之間相互訪問則需要建立信任關(guān)系。 當(dāng)一個(gè)域與其他域建立了信任關(guān)系后,2個(gè)域之間不但可以按需要相互進(jìn)行管理,還可以跨網(wǎng)分配文件和打印機(jī)等設(shè)備資源,使不同的域之間實(shí)現(xiàn)網(wǎng)絡(luò)資源的共享與管理,以及相互通信和

    2024年02月04日
    瀏覽(17)
  • 《計(jì)算機(jī)系統(tǒng)與網(wǎng)絡(luò)安全》 第八章 操作系統(tǒng)安全基礎(chǔ)

    《計(jì)算機(jī)系統(tǒng)與網(wǎng)絡(luò)安全》 第八章 操作系統(tǒng)安全基礎(chǔ)

    ???? 博主 libin9iOak帶您 Go to New World.??? ?? 個(gè)人主頁——libin9iOak的博客?? ?? 《面試題大全》 文章圖文并茂??生動形象??簡單易學(xué)!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍》學(xué)會IDEA常用操作,工作效率翻倍~?? ???? 希望本文能夠給您帶來一定的幫助??文章粗淺,敬

    2024年02月11日
    瀏覽(26)
  • 【網(wǎng)絡(luò)安全】-Linux操作系統(tǒng)—操作系統(tǒng)發(fā)展歷史與Linux

    【網(wǎng)絡(luò)安全】-Linux操作系統(tǒng)—操作系統(tǒng)發(fā)展歷史與Linux

    操作系統(tǒng)(Operating System,簡稱OS)是管理計(jì)算機(jī)硬件與軟件資源的系統(tǒng)軟件,它是計(jì)算機(jī)系統(tǒng)的核心與基石。操作系統(tǒng)的發(fā)展歷史可以追溯到20世紀(jì)50年代。 初期的操作系統(tǒng) 在計(jì)算機(jī)技術(shù)的早期,操作系統(tǒng)并不存在。那時(shí),計(jì)算機(jī)使用一種叫做批處理系統(tǒng)的方式來運(yùn)行程序。

    2024年02月03日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包