- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档免费下载、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
图⽂详解操作系统⾯试⾼频题,这次吊打⾯试官,我觉得稳了(⼿动 dog)。整理:楼仔,作者:三分恶,
戳原⽂链接。
引论
什么是操作系统?
可以这么说,操作系统是⼀种运⾏在内核态的软件。
它是应⽤程序和硬件之间的媒介,向应⽤程序提供硬件的抽象,以及管理硬件资源。
操作系统主要有哪些功能?
操作系统最主要的功能:
处理器(CPU)管理:CPU的管理和分配,主要指的是进程管理。
内存管理:内存的分配和管理,主要利⽤了虚拟内存的⽅式。
外存管理:外存(磁盘等)的分配和管理,将外存以⽂件的形式提供出去。
I/O管理:对输⼊/输出设备的统⼀管理。
除此之外,还有保证⾃身正常运⾏的健壮性管理,防⽌⾮法操作和⼊侵的安全性管理。
微信搜楼仔或扫描下⽅⼆维码关注楼仔的原创公众号,回复110 即可免费领取。
操作系统结构
什么是内核?
可以这么说,内核是⼀个计算机程序,它是操作系统的核⼼,提供了操作系统最核⼼的能⼒,可以控制操作系统中
所有的内容。
什么是⽤户态和内核态?
内核具有很⾼的权限,可以控制 cpu 、内存、硬盘等硬件,出于权限控制的考虑,因此⼤多数操作系统,把内存分
成了两个区域:
内核空间,这个内存空间只有内核程序可以访问;
⽤户空间,这个内存空间专⻔给应⽤程序使⽤,权限⽐较⼩;
⽤户空间的代码只能访问⼀个局部的内存空间,⽽内核空间的代码可以访问所有内存空间。因此,当程序使⽤⽤户
空间时,我们常说该程序在⽤户态执⾏,⽽当程序使内核空间时,程序则在内核态执⾏。
⽤户态和内核态是如何切换的?
应⽤程序如果需要进⼊内核空间,就需要通过系统调⽤,来进⼊内核态:
内核程序执⾏在内核态,⽤户程序执⾏在⽤户态。当应⽤程序使⽤系统调⽤时,会产⽣⼀个中断。发⽣中断后,
CPU 会中断当前在执⾏的⽤户程序,转⽽跳转到中断处理程序,也就是开始执⾏内核程序。内核处理完后,主动
触发中断,把 CPU 执⾏权限交回给⽤户程序,回到⽤户态继续⼯作。
微信搜楼仔或扫描下⽅⼆维码关注楼仔的原创公众号,回复110 即可免费领取。
进程和线程
并⾏和并发有什么区别?
并发就是在⼀段时间内,多个任务都会被处理;但在某⼀时刻,只有⼀个任务在执⾏。单核处理器做到的并发,其
实是利⽤时间⽚的轮转,例如有两个进程A和B,A运⾏⼀个时间⽚之后,切换到B,B运⾏⼀个时间⽚之后⼜切换
到A 。因为切换速度⾜够快,所以宏观上表现为在⼀段时间内能同时运⾏多个程序。
并⾏就是在同⼀时刻,有多个任务在执⾏。这个需要多核处理器才能完成,在微观上就能同时执⾏多条指令,不同
的程序被放到不同的处理器上运⾏,这个是物理上的多个进程同时进⾏。
什么是进程上下⽂切换?
对于单核单线程 CPU ⽽⾔,在某⼀时刻只能执⾏⼀条 CPU 指令。上下⽂切换 (Context Switch) 是⼀种将 CPU 资
源从⼀个进程分配给另⼀个进程的机制。从⽤户⻆度看,计算机能够并⾏运⾏多个进程,这恰恰是操作系统通过快
速上下⽂切换造成的结果。在切换的过程中,操作系统需要先存储当前进程的状态 (包括内存空间的指针,当前执
⾏完的指令等等) ,再读⼊下⼀个进程的状态,然后执⾏此进程。
进程有哪些状态?
当⼀个进程开始运⾏时,它可能会经历下⾯这⼏种状态:
上图中各个状态的意义:
运⾏状态(Runing):该时刻进程占⽤ CPU ;
就绪状态(Ready):可运⾏,由于其他进程处于运⾏状态⽽暂时停⽌运⾏;
阻塞状态(Blocked):该进程正在等待某⼀事件发⽣(如等待输⼊/输出操作的完成)⽽暂时停⽌运⾏,这
时,即使给它CPU控制权,它也⽆法运⾏;
当然,进程还有另外两个基本状态:
创建状态(new):进程正在被创建时的状态;
结束状态(Exit):进程正在从系统中消失时的状态;
什么是僵⼫进程?
僵⼫进程是已完成且处于终⽌状态,但在进程表中却仍然存在的进程。
僵⼫进程⼀般发⽣有⽗⼦关系的进程中,⼀个⼦进程的进程描述符在⼦进程退出时不会释放,只有当⽗进程通过
wait() 或 waitpid() 获取了⼦进程信息后才会释放。如果⼦进程退出,⽽⽗进程并没有调⽤ wait() 或 waitpid() ,那
么⼦进程的进程描述符仍然保存在系统中。
什么是孤⼉进程?
⼀个⽗进程退出,⽽它的⼀个或多个⼦进程还在运⾏,那么这些⼦进程将成为孤⼉进程。孤⼉进程将被 init 进程
(进程 ID 为 1 的进程) 所收养,并由 init 进程对它们完成状态收集⼯作。因为孤⼉进程会被 init 进程收养,所以孤
⼉进程不会对系
文档评论(0)