• 约 2 分钟

操作系统·复习卡片

请求分页中的地址变换过程 ?

进程的内存映像一般有几个要素: ? 进程的内存映像

程序链接方式(3) ? 静态链接、装入时动态链接、运行时动态链接

程序的装入方式(3) ? 绝对装入、静态重定位、动态重定位

信号量和管程的条件变量的比较 ? 相似点:条件变量的wait/signal操作类似于信号量的P/V操作,可以实现进程的阻塞/唤醒。 不同点:条件变量是“没有值”的,仅实现了“排队等待”功能;而信号量是“有值的”,信号量的值反映了生于资源数,而在管程中,生于资源数用共享数据结构记录。

TestAndSet原子操作 ?

bool TestAndSet(bool *lock) {
	bool old = *lock;
	*lock = true;
	return old;
}

Swap原子操作 ?

void Swap(bool *a, bool *b) {
	bool temp = *a;
	*a = *b;
	*b = temp;
}

Swap指令的使用:

//进入区开始
bool key = true;
while (key==true) {
	Swap(&lock, &key);
}
//进入区结束
//临界区
//退出区开始
*lock = false;
//退出区结束

P操作和V操作 ? semaphore:

typedef struct {
	int value;
	struct LinkList *L;
} semaphore;

P操作:

void wait(semaphore *S) {
	S.value--;
	if (S.value<0) {
		// add current process to S.L
		// and block itself
	}
}

V操作:

void signal(semaphore *S) {
	S.value++;
	if (S.value<=0) {
		// remove one process from S.L
		// and wake it up
	}
}

处理机调度算法 ? 多种作业、进程调度算法比较表格

多任务操作系统 ? 多道程序操作系统的马甲

INTR & NMI full form? ? INTR: interrupt NMI: Non-Maskable Interrupt

林威
林威 咖味十足的软件工程师