- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux内核结构与进程管理 Linux实用教程 教学课件
Linux 内核结构与进程管理 Linux系统结构 Linux内核组成 Linux启动流程 Linux中用户登陆流程 linux进程的四要素 程序 PCB 地址空间 系统堆栈空间 PCB:进程创建时内核为其分配的一个核心数据结构,进程自身不能直接存取。 系统堆栈空间:进程运行在核心态时使用的堆栈,和PCB连在一起,共8KB,其中PCB约占1000字节,系统堆栈空间约占7200字节。 2.2 内核中linux进程个数有最大值限制(4092)。但2.4以后,系统中的进程个数受限于系统的物理内存数,即限定所有进程的PCB及系统堆栈(8K)占用的空间≤1/2的物理内存总和。例64M内存:进程数≤64M/2/8K=4K 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.完全共享(线程) fork实例 进程调度 调度时机 a. 用户进程自愿放弃CPU,如执行sleep()系统调用; b.系统调用中,需要等待时,直接调用schedule()进行调度; c.系统调用、中断或异常处理完成后,返回到用户空间前,若当前进程的PCB中的need_resched = 1,则发生调度; 调度策略:基于进程的权值(weight,即动态优先级) 实时进程: weight = 1000+rt_priority (1000) 分时进程: weight = counter + 20 – nice (1000) 其中:rt_priority:是实时进程的优先级 counter:进程还剩余的时间片值 nice:进程优先级的调整值 (均在进程的PCB中标识) * * Linux kernel: 开放源代码的linux操作系统内核,目前版本为2.6 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)的。 从BIOS到KERNEL MBR-KERNEL-KERNEL自解压-内核初始化-内核启动(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根据运行级别启动相关的服务(一些后台进程
您可能关注的文档
- JDBC 章 J2EE概述 JavaEE教学课件PPT.ppt
- joy luck 跨文化交际 辽宁师范大学 选修课课件 外语学习.ppt
- JPCSP+图文教程之二.doc
- JQuery第一季 ——Ajax开发.ppt
- JQuery第一季 ——Ajax开发续2.ppt
- JSP中使用标准标签库 章 J2EE概述 JavaEE教学课件PPT.ppt
- JSF完全掌握.pdf
- JSY2000数字程控交换机说明书 办公通信设备维修资料.doc
- Junctions and Accesses-Determination of Size of Roundabouts and Major-Minor Junctions 《道路勘测设计》英文资料.pdf
- JS、JR系列电机技术数据.doc
最近下载
- F正谱长城谣声乐正谱钢琴伴奏五线谱子乐谱曲谱艺术歌曲歌谱音乐学院版.pdf
- 规范性文件的制定与备案审查制度.pptx VIP
- 2016沪S204 排水管道图集.pdf
- 幼儿园课件:《花匠种花》.pptx
- (高清版)DB43∕T 2748-2023 蒸汽锅炉应急处置导则 .pdf VIP
- DB34T3924-2021水稻抗倒性鉴定方法.pdf
- 2025年焦作师专历年数学试题单招 .pdf VIP
- ISO IEC 22989-2022 Information technology — Artificial intelligence — Artificial intelligence concepts and terminology 信息技术人工智能人工智能概念与术语.pdf
- 地质灾害与应急调查培训课件.pptx
- 【容联云通讯】全产品介绍材料V1.4.pptx
文档评论(0)