- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
8.1 Linux概述
8.1.1 学习Linux操作系统的意义
8.1.2 Linux系统的特点
8.1.3 Linux 系统的发展
第1页/共34页
8.1.4 Linux体系结构
第2页/共34页
8.1.5 Linux的用户界面
第3页/共34页
8.2 Linux的进程管理
8.2.1 Linux进程的组成
Linux系统中的进程都具有以下4个要素。
(1) 有一个程序正文段供其执行。
(2) 有进程专用的系统堆栈空间。
(3) 有一个进程描述符,即在内核中的一个task_struct数据结构。有了这个数据结构,进程才能成为内核调度的一个基本单位,接受内核的调度。同时,该结构还记录着进程所占用的各项资源。
(4) 有一个独立的地址空间,即拥有专有的用户空间和专用的用户空间堆栈。
第4页/共34页
8.2.2 Linux进程的状态
Linux的进程状态共有6种。
(1) TASK_RUNNING:正在运行(己获得CPU)或准备运行(就绪态——等待获得CPU)的进程。
(2) TASK_INTERRUPTIBLE:可中断等待状态。进程处于等待队列中,一旦资源可用时被唤醒,也可以由其他进程通过信号(SIGNAL)或中断唤醒。
(3) TASK_UNINTERRUPTIBLE:不可中断等待状态。进程处于等待队列中,一旦资源可用时被唤醒,但不可以由其他进程通过信号(SIGNAL)或中断唤醒。
(4) TASK_ZOMBIE:进程僵死状态。进程停止运行但是尚未释放PCB。
(5) TASK_STOPPED:进程停止状态。可能被特定信号终止,也可能是受其他进程的跟踪调用而暂时将CPU出让给跟踪它的进程。
(6) TASK_SWAPPING:页面被交换出内存的进程。
第5页/共34页
第6页/共34页
8.2.3 进程状态的切换时机
第一类是隐式地主动放弃CPU。这往往是因为需要的资源目前不能获取,如执行read()、selec()等系统调用的过程中。
第二类是进程显式地主动放弃CPU,如系统调用sched_yield()、sched_setscheduler()及pause()均会导致当前进程让出CPU。
第7页/共34页
8.2.4 Linux的进程控制
进程的创建
Linux操作系统中,除初始化进程外,其他进程都是用系统调用fork()和clone()创建的,调用fork()和clone()的进程是父进程,被生成的进程是子进程。
第8页/共34页
2. 进程的等待
父进程可用系统调用wait3()等待它的任何一个子进程终止,也可以用系统调用wait4()等待某个特定的子进程终止。
第9页/共34页
3. 进程的终止
当命令执行完,希望终止自己时,可在其程序末尾使用系统调用exit()。
第10页/共34页
4. 进程上下文切换
改变进程上下文的工作很复杂,是由系统调用execve()实现的。它用一个可执行文件的副本覆盖该进程的内存空间。
第11页/共34页
8.2.5 Linux 线程
Linux并不确切区分进程与线程,或者说没有真正意义上的线程概念,但通过clone()系统调用,可以支持轻量级进程(Lightweight Process)。
第12页/共34页
8.2.6 PCB(进程控制块)
Linux内核利用一个数据结构(task_struct)标志一个进程的存在。task_struct也就是Linux进程控制块PCB
第13页/共34页
8.2.7 进程的调度
Linux中实现了3种进程调度策略。
SCHED_FIFO:先进先出(First In First Out)策略。
SCHED_RR:轮转调度(RoundRobin)策略。
SCHED_OTHER:其他策略。
第14页/共34页
8. 8.2.8 Linux进程通信
信号是UNIX系统中最古老的进程间通信机制,它主要用来向进程发送异步的事件信号。
Linux中,信号种类的数目和具体的平台有关,因为内核用一个字代表所有的信号,因此字的位数就是信号种类的最多数目。对32位的i386平台而言,一个字为32位,因此信号有32。
第15页/共34页
8.2.9 信号量与PV操作
信号量也用来保护关键代码或数据结构(即临界资源)。 Linux利用信号量实现对关键代码和数据的互斥访问。
Linux信号量数据结构中包含的信息主要有。
count(计数)
waking(等待唤醒计数)
3) 等待
您可能关注的文档
最近下载
- GB 50487-2008 水利水电工程地质勘察规范 (2022年版) .docx VIP
- 【低空经济】低空经济教学课程设计方案.docx
- 2025至2030中国冷链物流行业运营效率与成本控制研究报告.docx
- 2020年《毛泽东思想和中国特色社会主义理论体系概论》考试试卷及答案(一).doc VIP
- 2025入团积极分子考试题库(含答案).docx VIP
- 2021年模拟试题版10月自学考试12656毛泽东思想和中国特色社会主义理论体系概论历年模拟试题.doc VIP
- (2025)廊坊市入团积极分子考试题库(含答案).docx VIP
- 2025至2030中国冷链物流无人机配送网络建设与运营成本测算研究报告.docx
- 晶源微一级代理商CSC2313F深圳恒锐丰科技.pdf VIP
- 2024北森整理题库(言语理解、资料分析、图形推理.).docx VIP
原创力文档


文档评论(0)