編寫一程序,可以創(chuàng)建若干個虛擬進程,并對若干個虛擬進程進行調度,調度策略為時間片輪轉。
虛擬程序的描述:
虛擬指令的格式: 操作命令 操作時間
其中,操作命令有以下幾種:
l C : 表示在CPU上計算
l I :表示輸入
l O:表示輸出
l W:表示等待
l H:表示進程結束
操作時間代表該操作命令要執(zhí)行多長時間
假設I/O設備的數(shù)量沒有限制
著名的AT&T UNIX v6 源碼,雖然已不能在現(xiàn)在的機器中直接運行(通過在Linux上安裝pdp11 simulator可以運行),但從中首先可以學習到C程序設計的簡約與嚴謹(原作者是圖靈獎得主Brian W. Kernighan和Dennis M. Ritchie),其次還可以幫助深入理解操作系統(tǒng)概念,其設計思想仍然廣泛存在于多數(shù)操作系統(tǒng)中。
本系統(tǒng)的首次發(fā)布于1976年,現(xiàn)仍然做為MIT高年級學生、研究生的操作系統(tǒng)學習的分析材料。
從空格(ASCII碼32)到~(ASCII碼126)。表內的第一行與表頭相同,下面的每一行都與上一行的內容相同,只是字符相左移動了一個位置。這樣,下一行的最后一個字符與上一行的第一個字符相同。
為了進行文本編碼,可以任意選擇一個字符串,稱之為編碼字符串,也就是常說的密鑰。為解釋編碼方法,我們假設密鑰是Walrus,待編碼的文本(即常說的明文)是:
Meet me in St. Louis
我們在待編碼的文本之上重復書寫上述密鑰,使得其長度與待編碼文本相同:
WalrusWalrusWalrusWa
Meet me in St. Louis
從上述兩行文本中按列對應方式依次提取一個字符,可得到多個字符對:WM、ae、le等,這些字符對可用作上表的索引。這樣,依次以這些字符對作為索引可從上表查到一系列字符,這些字符就構成了文本編碼,即常說的密文。例如,第W行第M列隊應得字符是%,因此編碼的第一個字符就是%;第a行第e列對應的字符是G;第l行第e列對應的是R。依次進行上述查找操作,可以得到完整的密文
%Grgua=aVauGLol?eiAU
進行相反的操作就可對該文本解碼。
編寫編碼/解碼程序,可以對文本文件或鍵盤輸入的字符串進行編碼/解碼,在選擇編碼解碼后,需要提示用戶輸入密鑰。
Although there has been a lot of AVL tree libraries available now, nearly all of them are meant to work in the random access memory(RAM). Some of them do provide some mechanism for dumping the whole tree into a file and loading it back to the memory in order to make data in that tree persistent. It serves well when there s just small amount of data. When the tree is somewhat bigger, the dumping/loading process could take a lengthy time and makes your mission-critical program less efficient. How about an AVL tree that can directly use the disk for data storage ? If there s something like that, we won t need to read through the whole tree in order to pick up just a little bit imformation(a node), but read only the sectors that are neccssary for locating a certain node and the sectors in which that node lies. This is my initial motivation for writing a storage-media independent AVL Tree. However, as you step forth, you would find that it not only works fine with disks but also fine with memorys, too.