MINIX3进程学习

     首先MINIX3内部被组织成四层,里面就有些硬件术语还不能理解,比如时钟任务,于是就不能发挥想象了。第一层的主要功能是为上层驱动程序和服务器提供一组特权内核调用。进程都潜在具有一定特权,这是另外三层的不同之处。第二层拥有最多特权。第二层内的称为设备驱动程序(device driver)。第三层包含了服务器,有两个服务器不可少,进程管理器(Process Manager,PM)和文件系统(File System,FS),还有信息服务器(information server,IS),再生服务器(reincarnation server,RS),在一个网络操作系统上还可能有网络服务器(network server,inet)。

    操作系统负责两件事情:管理资源和通过实现系统调用提供一个扩展计算机。在MINIX3中,资源管理主要由第2层的驱动程序完成,系统调用的解释由第3层的进程管理器和文件系统来做。第2层和第3层内的驱动程序和服务器通常称为系统进程,MINIX3的执行优先权是视情况而定的。最后第4层包括了所有的用户进程,另外还可能有些守护进程(daemon)在运行,守护进程是周期性运行或总是等待某个事件的后台进程。

    MINIX3的进程可以创建子进程,子进程又可以创建更多的子进程,这样便构造出一颗进程树。如果从硬盘启动,硬盘会被分成若干个分区(partition),整个硬盘的第一个扇区包括一段小程序和磁盘分区表(partition table),通常这两者合在一起称为主引导记录(master boot record)。如果从启动设备是软盘,则在软盘上第1扇区包含了引导程序(bootstrap)。支持光盘启动的计算机可以马上把一大块的数据加载到内存中。不管哪种情况MINIX3都将需要一个文件,一个包含各部分的文件并将各部分装到内存中去,那就是引导映像(boot image)。

   进程树的初始化

   init是第一个用户进程,首先启动的程序中有一个实用程序称为服务(service),服务是再生服务器进程的用户接口。MINIX3用于进程管理的两个主要系统调用是fork和exec。fork是创建一个新进程的唯一途径。exec允许一个进程执行一个指定的程序,当一个程序被执行时,将按照文件头中指定的大小为其分配一部分内存。一个进程的所有信息被保存在进程表中,进程表划分成内核、内存管理器和文件系统三部分。

    MINIX3提供了三条原语来发送和接收消息,均通过C库例程调用。send,receive,sendrec。为了避免死锁,MINIX3规定当一个进程发送消息到目标进程而目标进程并不在等待消息时,发送进程将阻塞,直到目标进程调用receive为止。有时需要不阻塞的消息传递原语,用notify。

    MINIX3的进程调度

    MINIX3调度器使用一个多级排队系统,一共定义了16个队列,最低优先级队列只由IDLE进程使用。除了优先级以外还使用时间片机制以使一些进程比其他一些进程更有优势,此外还使用一个经改进的时间片轮转调度算法调度进程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值