Lab3 进线程切换
俞星凯 171830635
2651904866@qq.com
实验目的
1. 实现一个简单的任务调度。
2. 介绍基于时间中断进行进程切换以及纯用户态的非抢占式的线程切换完成任
务调度的全过程。
实验内容
1. 内核:实现进程切换机制,并提供系统调用 fork、sleep、exit。
2. 库:对上述系统调用进行封装;实现一个用户态的线程库,完成 pthread_create、
pthread_join、pthread_yield、pthread_exit 等接口。
3. 用户:对上述库函数进行测试。
背景知识
1. 进程与线程
进程为操作系统资源分配的单位,每个进程都有独立的地址空间(代码段、数据
段),独立的堆栈,独立的进程控制块;线程作为任务调度的基本单位,与进程
的唯一区别在于其地址空间并非独立,而是与其他线程共享。以下为一个广义的
进程(包括进程与线程)生命周期中的状态转换图
(1) 进程由其父进程利用 FORK 系统调用创建,则该进程进入 RUNNABLE 状态
(2) 时间中断到来,RUNNABLE 状态的进程被切换到,则该进程进入 RUNNING 状
态
评论0