进程管理

进程管理主要是完成进程的创建、退出、状态的转换、进程切换

1、进程的创建。进程的创建主要完成几个任务,从创建进程对象开始,也就是为PCB分配内存,然后分配相应的资源,例如内存、IO设备等,分配好资源后,如果程序处于外存,还要将程序从外存读入,这个过程可以称为装载,装载完成后,初始化进程的运行环境,例如各个寄存器的初始值,然后根据初始状态设置PCB,最后将进程放入调度队列中,等待调度。

2、进程的退出。进程的退出主要是处理进程占用资源的释放,例如占用的内存,关闭已经打开的内核对象,如文件等。释放完成后,将自身从调度列表中删除,并将PCB归还系统。

3、进程切换。进程切换主要是完成将进程放入CPU运行的工作。

4、进程状态的转换。也就是处理进程在各个状态之间的转换的操作,通常是睡眠和等待

以上是偏于理论性质的内容,对实际的实现没有太多的帮助。真正的实现需要考虑太多如何做的问题。对于具体的问题,例如,如何分配进程对象?没有分页机制的情况下如何分配内存?有分页机制的情况下如何分配内存?如何实现内核共享而用户空间独立?等等其实这些才是学习者关心的。

Lenix通过以下几个程序来实现进程管理这些任务。

void        Proc_initial(void);
proc_t  *   Proc_create(const char * name,void * entry,void * param,void * stack);
void        Proc_exit(int code);
void    *   Proc_switch_prepare(void * sp,proc_t * next);
void        Proc_switch_to(proc_t * next);
void        Proc_sched(void);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值