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

进程的内存映像一般有几个要素: ? 进程的内存映像
程序链接方式(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