抢占式多任务处理
简介
在同时有多个活动进程的情况下,我们将完成抢占式多任务处理.
Part A
- 在JOS添加多CPU支持
- 实现进程循环调度
- 基本的进程管理系统调用(创建和销毁进程,分配和映射内存)
Part B
- 完成Unix风格的
fork()
实现,用户进程将通过它创建自身的拷贝
Part C
- 完成进程间通信IPC,允许用户进程互相通信和同步.
- 添加硬件时钟中断处理
准备工作
- 如果使用原生jos代码,将jos代码切换到lab4分支,并将lab3分支merge进来.
- 如果使用我的库,则已经是完成好的代码.
新增代码和解释
kern/cpu.h Kernel-private definitions for multiprocessor support
kern/mpconfig.c
Code to read the multiprocessor configurationkern/lapic.c
Kernel code driving the local APIC unit in each processorkern/mpentry.S
Assembly-language entry code for non-boot CPUskern/spinlock.h
Kernel-private definitions for spin locks, including the big kernel lockkern/spinlock.c
Kernel code implementing spin lockskern/sched.c
Code skeleton of the scheduler that you are about to implement
时间安排
Lab4共分为3个Part,每个Part大约在一周时间内完成.