編寫一程序,可以創(chuàng)建若干個(gè)虛擬進(jìn)程,并對(duì)若干個(gè)虛擬進(jìn)程進(jìn)行調(diào)度,調(diào)度策略為時(shí)間片輪轉(zhuǎn)。
虛擬程序的描述:
虛擬指令的格式: 操作命令 操作時(shí)間
其中,操作命令有以下幾種:
l C : 表示在CPU上計(jì)算
l I :表示輸入
l O:表示輸出
l W:表示等待
l H:表示進(jìn)程結(jié)束
操作時(shí)間代表該操作命令要執(zhí)行多長(zhǎng)時(shí)間
假設(shè)I/O設(shè)備的數(shù)量沒有限制
著名的AT&T UNIX v6 源碼,雖然已不能在現(xiàn)在的機(jī)器中直接運(yùn)行(通過在Linux上安裝pdp11 simulator可以運(yùn)行),但從中首先可以學(xué)習(xí)到C程序設(shè)計(jì)的簡(jiǎn)約與嚴(yán)謹(jǐn)(原作者是圖靈獎(jiǎng)得主Brian W. Kernighan和Dennis M. Ritchie),其次還可以幫助深入理解操作系統(tǒng)概念,其設(shè)計(jì)思想仍然廣泛存在于多數(shù)操作系統(tǒng)中。
本系統(tǒng)的首次發(fā)布于1976年,現(xiàn)仍然做為MIT高年級(jí)學(xué)生、研究生的操作系統(tǒng)學(xué)習(xí)的分析材料。
從空格(ASCII碼32)到~(ASCII碼126)。表內(nèi)的第一行與表頭相同,下面的每一行都與上一行的內(nèi)容相同,只是字符相左移動(dòng)了一個(gè)位置。這樣,下一行的最后一個(gè)字符與上一行的第一個(gè)字符相同。
為了進(jìn)行文本編碼,可以任意選擇一個(gè)字符串,稱之為編碼字符串,也就是常說的密鑰。為解釋編碼方法,我們假設(shè)密鑰是Walrus,待編碼的文本(即常說的明文)是:
Meet me in St. Louis
我們?cè)诖幋a的文本之上重復(fù)書寫上述密鑰,使得其長(zhǎng)度與待編碼文本相同:
WalrusWalrusWalrusWa
Meet me in St. Louis
從上述兩行文本中按列對(duì)應(yīng)方式依次提取一個(gè)字符,可得到多個(gè)字符對(duì):WM、ae、le等,這些字符對(duì)可用作上表的索引。這樣,依次以這些字符對(duì)作為索引可從上表查到一系列字符,這些字符就構(gòu)成了文本編碼,即常說的密文。例如,第W行第M列隊(duì)?wèi)?yīng)得字符是%,因此編碼的第一個(gè)字符就是%;第a行第e列對(duì)應(yīng)的字符是G;第l行第e列對(duì)應(yīng)的是R。依次進(jìn)行上述查找操作,可以得到完整的密文
%Grgua=aVauGLol?eiAU
進(jìn)行相反的操作就可對(duì)該文本解碼。
編寫編碼/解碼程序,可以對(duì)文本文件或鍵盤輸入的字符串進(jìn)行編碼/解碼,在選擇編碼解碼后,需要提示用戶輸入密鑰。
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.