📄 free_block.c
字号:
#include "memory.h"
void free_one_block(int physical_block_number)
{
int i,bn,front,back;
struct physical_block *b,*b_f,*b_b;
struct file_window *f;
struct memory_process *p;
struct memory_hash *h;
bn=physical_block_number;
b=memory_body->physical_block+bn;
f=(memory_body->file_window+b->file_window);
p=(memory_body->memory_process+f->file.memory_process);
front=b->buf_front;back=b->buf_back;
if(front==bn)
p->block_ring=-1;
else{
if(p->block_ring==bn)
p->block_ring=front;
b_f=memory_body->physical_block;
b_f=b_f+front;
b_b=memory_body->physical_block;
b_b=b_b+back;
b_f->buf_back=back;
b_b->buf_front=front;
};
front=b->file_front;back=b->file_back;
if(front==bn)
f->block_ring=-1;
else{
if(f->block_ring==bn)
f->block_ring=front;
b_f=memory_body->physical_block;
b_f=b_f+front;
b_b=memory_body->physical_block;
b_b=b_b+back;
b_f->file_back=back;
b_b->file_front=front;
};
front=b->hash_front;back=b->hash_back;
i=memory_body->hash_function
(b->file_window,b->logic_block_number);
h=&(memory_body->hash[i]);
if(front==bn)
h->hash_ring=-1;
else{
if(h->hash_ring==bn)
h->hash_ring=front;
b_f=memory_body->physical_block;
b_f=b_f+front;
b_b=memory_body->physical_block;
b_b=b_b+back;
b_f->hash_back=back;
b_b->hash_front=front;
};
free_free_block(f->file.memory_process,physical_block_number);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -