📄 block_free.c
字号:
#include "memory.h"
#define NO_FREE_BLOCK (-1)
int get_free_block(int memory_process_number)
{
int bn;
struct physical_block *b;
if((bn=(*(memory_body->free_physical_block)))<0)
return NO_FREE_BLOCK;
b=memory_body->physical_block+bn;
*(memory_body->free_physical_block)=b->buf_back;
(memory_body->memory_process+memory_process_number)
->block_number++;
b->state=FREE_BLOCK;
(*(memory_body->free_block_number))--;
return bn;
}
void free_free_block(int memory_process_number,int block_number)
{
int processor,semaphore;
struct physical_block *b;
b=memory_body->physical_block+block_number;
b->state=FREE_BLOCK;
b->buf_back=(*(memory_body->free_physical_block));
*(memory_body->free_physical_block)=block_number;
(memory_body->memory_process+memory_process_number)
->block_number--;
(*(memory_body->free_block_number))++;
if((processor=memory_body->wait_block->processor)>=0)
if((semaphore=memory_body->wait_block->semaphore)>=0){
memory_body->wait_block->processor=(-1);
memory_body->wait_block->semaphore=(-1);
memory_v_operation(processor,semaphore);
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -