自己調試的,最近學OS,感覺還是用調試調試PV操作才踏實!
#include "stdafx.h" #include "windows.h" #include "process.h" #include "iostream.h" #define N 5 #define M 10 HANDLE Barber; HANDLE Customers; HANDLE Chairs; HANDLE Mutex; int cstm_count=0; DWORD WINAPI BarberThread(LPVOID lpParameter) { while(1){ WaitForSingleObject(Customers,INFINITE); //printf("Baber cut.../n"); ReleaseSemaphore(Barber,1,NULL); WaitForSingleObject(Mutex,INFINITE); cstm_count--; printf("leave...cutted/n"); ReleaseMutex(Mutex); } return 1; } DWORD WINAPI CustomerThread(LPVOID lpParameter) { int* me=(int *)lpParameter; WaitForSingleObject(Mutex,INFINITE); if(cstm_count==N){ ReleaseMutex(Mutex); printf("%d leave...uncutted/n",*me); return 1; } cstm_count++; printf("%d customer sit...%d/n",*me,cstm_count); ReleaseMutex(Mutex); ReleaseSemaphore(Customers,1,NULL); WaitForSingleObject(Barber,INFINITE); printf("#%d customer cutted.../n",*me); Sleep(1000); return 1; } int main(int argc, char* argv[]) { int cNo[M]; int bNo=0; DWORD dw; int i; Mutex=CreateMutex(NULL,FALSE,NULL); Barber=CreateMutex(NULL,FALSE,NULL); //Chairs=CreateSemaphore(NULL,N,N,NULL); Customers=CreateSemaphore(NULL,0,N,NULL); CreateThread(NULL,0,BarberThread,&bNo,NULL,&dw); for(i=0;i<M;i++) { cNo[i]=i; CreateThread(NULL,0,CustomerThread,&cNo[i],NULL,&dw); } Sleep(60000); return 0; }
我們將要模擬一個非常流行的遊戲——擲骰子。 骰子的形式多種多樣, 最普遍的是使用兩個6面骰子。在一些冒險遊戲中,會使用5種骰子:4面、6 面、8面、12面和20面。聰明的古希臘人證明了只有5種正多面體,它們的所 有面都具有相同的形
文章目錄下面給出DFPC的FRFCFS解析首先看看頭文件裏面多出了什麼成員變量成員函數判斷總線請求兩個求絕對值的函數把byte轉成wordgetchanges看看encoder針對已經壓縮的重新encode選擇壓縮方案wordto
C預處理器在程序執行之前查看程序(故稱之爲預處理器)。 根據程序中的預處理器指令,預處理器把符號縮寫替換成其表示的內容。預處理器可 以包含程序所需的其他文件,可以選擇讓編譯器查看哪些代碼。預處理器並不知道 C。 基本上它的工作是把
restrict 關鍵字允許編譯器優化某部分代碼以更好地支持計算。說到底,就是更好地適應編譯器 它只能 用於指針,表明該指針是訪問數據對象的唯一且初始的方式。要弄明白爲什 麼這樣做有用,先看幾個例子。考慮下面的代碼: int ar
學習了不同存儲類別的概念後,我們來看幾個相關的程序。 首先,來看 一個使用內部鏈接的靜態變量的函數:隨機數函數。 ANSI C庫提供了rand() 函數生成隨機數。生成隨機數有多種算法,ANSI C允許C實現針對特定機器 使用最佳
函數也有存儲類別,可以是外部函數(默認)或靜態函數。 C99 新增了 第 3 種類別——內聯函數。外部函數可以被其他文件的 函數訪問,但是靜態函數只能用於其定義所在的文件。假設一個文件中包含 了以下函數原型: double gam
C11 的對齊特性比用位填充字節更自然,它們還代表了C在處理硬件相關問題上的能力。 在這種上下文中,對齊指的是如何安排對象在內存中的位置。 例如,爲了效率最大化,系統可能要把一個 double 類型的值儲存在4 字 節內存地址上,
C標準規定了一些預定義宏 C99 標準提供一個名爲_ func 的預定義標識符,它展開爲一個代表函數名的字符串(該函數包含該標識符)。那麼, func 必須具有函數作用域,而從本質上看宏具有文件作用域。因此, func _是C語
volatile 限定符告知計算機,代理(而不是變量所在的程序)可以改變該變量的值。 通常,它被用於硬件地址以及在其他程序或同時運行的線程中共享數據。 例如,一個地址上可能儲存着當前的時鐘時間,無論程序做什 麼,地址上的值都隨時間
計算機免費書籍相關網站 鳩摩. 主要是java類的書籍:java學習. eBook. 計算機書籍控. 主要學習Web的:W3cSchool. 部分免費:圖靈社區. 當然如果依然找不到自己想要的資源 ,可以諮詢我,嘿嘿,扣扣:192
首先進入root權限,用命令創建一個用戶 具體命令如下 創建一個用戶:useradd 用戶名 設置密碼:passwd 密碼 其次,查看/etc/pa