touch_block.c
来自「虚拟地址空间基于文件的操作系统」· C语言 代码 · 共 28 行
C
28 行
#include"memory.h"
int touch_block(int memory_process_number,int physical_block_number,
int sleep_semaphore)
{
struct physical_block *b;
struct file_window *f;
b=physical_block_number+memory_body->physical_block;
for(;;)
switch(b->state){
case MODIFIED_BLOCK:
case NOT_MODIFIED_BLOCK:
f=memory_body->file_window+b->file_window;
if(memory_set_tlb_item(f->file.memory_process,
b->file_window,b->logic_block_number,
b->physical_number,f->file.right)>=0)
b->lock_number++;
mark_accessed(physical_block_number);
return 0;
case READING_BLOCK:
case WRITING_BLOCK:
wait_block(physical_block_number,sleep_semaphore);
return 0;
default:
return 0;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?