linux 进程管理 ppt,Linux内核结构与进程管理.ppt

Linux内核结构与进程管理.ppt

Linux 内核结构与进程管理,Linux系统结构Linux kernel 开放源代码的linux操作系统内核,目前版本为2.6,Linux内核组成1. 进程调度程序( S C H E D)负责控制进程访问C P U。保证进程能够公平地访问C P U,同时保证内核可以准时执行一些必需的硬件操作。 2. 内核管理程序( M M)使多个进程可以安全地共享机器的主存系统,并支持虚拟内存。 3. 虚拟文件系统( V F S)。通过提供一个所有设备的公共文件接口, V F S抽象了不同硬件设备的细节。此外, V F S支持与其他操作系统兼容的不同的文件系统格式。 4. 网络接口( N E T)提供对许多建网标准和网络硬件的访问。 5. 进程间通信( I P C)子系统为进程与进程之间的通信提供了一些机制。 这些子系统虽然实现的功能相对独立,但存在着较强的依赖性(调用依赖模块中相应的函数),所以说linux内核是单块结构(monolithic)的,而windows体系结构是微内核microkernel的。,Linux启动流程,从BIOS到KERNEL MBRKERNELKERNEL自解压内核初始化内核启动(start_kernel函数,在linux内核源代码树的/usr/src/linux/init/main.c中) 2. 内核启动创建1进程并执行,由它创建若干内核线程(kernel thread),然后装入并执行程序/sbin/init(变成一个用户进程)。此后,init根据/etc/inittab配置文件来执行相应的脚本进行系统初始化,如设置键盘、字体,装载模块,设置网络等 对于Redhat来说,执行的顺序为 /etc/rc.d/rc.sysinit 由init执行的第一个脚本 /etc/rc.d/rc RUNLEVEL RUNLEVEL为缺省的运行模式 /etc/rc.d/rc.local 运行模式2、3、5时会运行的脚本 /sbin/mingetty(或getty) 等待用户登录 /etc/inittab中指定了系统的运行级别(RUNLEVEL),init根据运行级别启动相关的服务(一些后台进程),实现不同的功能。 RUNLEVEL06 0halt, 1单用户,2多用户,3多用户并启动NFS服务 4保留,5运行xdm(X window)以图形界面方式登录 6reboot,Linux中用户登陆流程linux进程的四要素,程序 PCB 地址空间 系统堆栈空间 PCB进程创建时内核为其分配的一个核心数据结构,进程自身不能直接存取。 系统堆栈空间进程运行在核心态时使用的堆栈,和PCB连在一起,共8KB,其中PCB约占1000字节,系统堆栈空间约占7200字节。 2.2 内核中linux进程个数有最大值限制(4092)。但2.4以后,系统中的进程个数受限于系统的物理内存数,即限定所有进程的PCB及系统堆栈(8K)占用的空间1/2的物理内存总和。例64M内存进程数64M/2/8K4K,PCB中的重要信息,身份信息pid,uid,gid,euid,egid等; 状态信息running, interruptible, non-interruptible, stopped, zombie 调度信息policy, priority, rt_priorty, need_resched policy即进程的类别,分SCHED_FIFO, SCHED_RR, SCHED_OTHER三种,前两种为实时进程,后一种为非实时进程 IPC信息如定义对某些信号的处理等 家族信息父进程、兄弟进程、子进程信息 时钟和定时信息 文件系统 存储管理,进程的创建,进程创建fork , clone, vfork 父子进程共享资源的形式 a.不共享(fork时缺省) b.部分共享 c.完全共享(线程),include int myvar0; void main int pid; pid fork; system call if pid 0 error occurred printf“fork failed.”; exit-1; system call else if pid 0 child process printf“child process cutingn”; myvar 1; else parent process wait; system call, wait for children completion printf“child complete.”; myvar ; printf“father,myvard”,myvar; exit0; ,fork实例,进程调度,调度时机 a. 用户进程自愿放弃CPU,如执行sleep系统调用; b.系统调用中,需要等待时,直接调用schedule进行调度; c.系统调用、中断或异常处理完成后,返回到用户空间前,若当前进程的PCB中的need_resched 1,则发生调度; 调度策略基于进程的权值(weight,即动态优先级) 实时进程 weight 1000rt_priority (1000) 分时进程 weight counter 20 nice (1000) 其中rt_priority是实时进程的优先级 counter进程还剩余的时间片值 nice进程优先级的调整值 (均在进程的PCB中标识),

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值