1樓:薛泡泡
/*巨集定義*/
#include
#include
#include
#define PROCESS_NAME_LEN 32程序名稱的最大長度*/
#define MIN_SLICE10最小碎片的大小*/
#define DEFAULT_MEM_SIZE 1024 /*預設記憶體的大小*/
#define DEFAULT_MEM_START 0預設記憶體的起始位置*/
/* 記憶體分配演算法 */
#define MA_FF 1
#define MA_BF 2
#define MA_WF 3
int mem_size=DEFAULT_MEM_SIZE記憶體大小*/
int ma_algorithm = MA_FF當前分配演算法*/
int flag = 0設定記憶體大小標誌*/
static int pid = 0初始pid*/
int algorithm;
void rearrange(int algorithm);
/*描述每乙個空閒塊的資料結構*/
struct free_block_type
q = q->next;
return NULL;
void swap(int *t,int *q)
int temp;
temp = *t;
*t = *q;
*q = temp;
void do_exit()
exit(0);
/*初始化空閒塊,預設為一塊,可以指定大小及起始位址*/
struct free_block_type* init_free_block(int mem_size)
pre->next = ab->next;
free(ab);
return 2;
/* 顯示當前記憶體的使用情況,包括空閒區的情況和已經分配的情況 */
int display_mem_usage(){
struct free_block_type *fbt=free_block;
struct allocated_block *ab=allocated_block_head;
if(fbt==NULL) return(-1);
printf("n");
/* 顯示空閒區 */
printf("Free Memory:\n");
printf("%20s %20s\n", " start_addr", " size");
while(fbt!=NULL){
printf("%20d %20d\n", fbt->start_addr, fbt->size);
fbt=fbt->next;
/* 顯示已分配區 */
printf("\nUsed Memory:\n");
printf("%10s %20s %10s %10s\n", "PID", "ProcessName", "start_addr", " size");
while(ab!=NULL)
printf("%10d %20s %10d %10d\n", ab->pid, ab->process_name, ab->start_addr, ab->size);
ab=ab->next;
printf("n");
return 0;
void kill_process()
struct allocated_block *ab;
int pid;
printf("Kill Process, pid=");
scanf("%d", &pid);
ab=find_process(pid);
printf("found");
if(ab!=NULL)
if(ma_algorithm>=1&&ma_algorithm<=3)free_mem(ab); /*釋放ab所表示的分配區*/
if(ma_algorithm=4)free_mem1(ab);
dispose(ab); /*釋放ab資料結構節點*/
int main()
char choice;
pid=0;
free_block = init_free_block(mem_size); //初始化空閒區
p = free_block;
for(;;)
display_menu(); //顯示選單
fflush(stdin);
choice=getchar(); //獲取使用者輸入
switch(choice)
case '1': set_mem_sizebreak設定記憶體大小
case '2': set_algorithmflag=1; break設定分配演算法
case '3': new_processflag=1; break建立新程序
case '5': display_mem_usage(); flag=1; break顯示記憶體使用
case '0': do_exit(); exit(0break; //釋放鍊錶並退出
default: break;
2樓:
別的學校不清楚,我說一下我的學校。一般初試成績出來之後,各個學校定了錄取線就會出複試細則,複試細則會有複試的筆試科目和機試環境。就我們學校而言,我們程式語言使用標準C,環境是win7下的Vc++ 6.
0,vs2010,codeblocks任選,所以環境問題不要擔心,你需要學會看報錯資訊和除錯程式。題目是比較基礎的,但是考察範圍比較廣,記得多刷程式設計題。
計算機程式設計用MAC好還是windows好?
Beta Beauty 我說說自己的感受。現在Windows和Mac的開發體驗其實都蠻不錯的,win10新推出的windows terminal,mac的iterm2都是介面不錯的終端,剛接觸的話其實兩方面都可以接受,至於更為細緻的區別之後我再仔細介紹一下個人體驗。其次呢,windows上面能做的開...
怎麼自學計算機程式設計?
浮世清歡 emmm這個,範圍太廣了。首先計算機程式語言就有很多種了,而且還分前端啊什麼之類的,不過題主可以去看看相關資料。比如基礎知識啊c語言啥的 Alice Na 首先你提的問題太籠統了,先確定自己喜歡計算機哪個職業,前端,後端,測試,運維等等,然後根據對應的職業在知乎上搜答案,看一遍下來,也就明...
喜歡計算機,喜歡程式設計,以後想從事計算機方面的工作,有個方向卻不知道如何規劃?
我覺的題主需要的是做一些實際的工作來明確方向。最推薦的途徑是實習。暑期實習馬上就要開始了,建議投一下。本科生實習的要求不會太高,基本只要程式設計基礎紮實,資料結構 演算法設計基礎好,稍微準備一下筆試面試,包裝一下做過的專案 不是說怎麼吹,而是琢磨回顧一下做過的專案,如何介紹給面試官,有什麼侷限,有什...