操作系统复习,秋招没有复习方向的可以看一下

本来是打算过段时间才开始写这个的,昨天看到一位牛油发帖不知道复习方向,就提前写一下

别光收藏,点个赞呗
(欠的TCP/IP详细的东西就先不写了,我看了两天的《TCP/IP详解 卷一:协议》现在脑子还嗡嗡的,等后面弄懂了再...)
(其实我就是想鸽而已)

参考书籍《计算机操作系统》(第四版 汤小丹 梁红兵) 西安电子科技大学出版社


第一章、操作系统引论

操作系统基本特性
并发、共享、虚拟、异步(详细的看一下有个印象)

操作系统的主要功能
进程控制、进程同步、进程通信、调度

这两个大概看一下就Ok


第二章、进程的描述与控制

程序并发的特征
间断性、失去封闭性、不可再现性

程序的特征
动态、并发、独立、异步

程序的三种基本状态
就绪、执行、阻塞 以及三种基本状态的转换

为什么要引入挂起状态
终端用户需要、父进程要求、负荷调节需求、操作系统需求

引入挂起状态后的状态转换

进程控制块PCB的作用
作为独立运行基本单位的标志、能够实现间接运行方式、提供经常管理所需要的信息、提供进程调度所需要的信息、实现与其他进程的同步与通信

什么是临界区?如何解决冲突?
每个进程中访问临界资源的那段程序称为临界区,每次只准许一个进程进入临界区,进入后不允许其他进程进入。
1:如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入;
2:任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待;
3:进入临界区的进程要在有限时间内退出,以便其它进程能及时进入自己的临界区;
4:如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。

进程同步机制应遵循的规则
空闲让进、忙则等待、有限等待、让权等待

进程同步经典问题
“生产者-消费者” “哲学家进餐问题” “读者-写者问题”(可以了解一下)

进程间通信是如何实现的?
早期的属于低级通信:原因:1:效率低,生产者每次只能向缓冲池投放一个信息  2:通信对用户不透明,隐藏了通信的具体细节。现在发展为高级通信:用户可以利用操作系统所提供的一组通信命令传送大量数据。操作系统隐藏了进程通信的实现细节。或者说,通信过程对用户是透明的。
高级通信机制:共享存储器系统、消息传递系统、管道通信系统、客户机-服务器系统

进程与线程的区别:(区别可以自己再详细看看)
1、定义:
进程:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位(包括程序段,相关数据段,和进程控制块PCB)
线程:线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
2、关系:
一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.相对进程而言,线程是一个更加接近于执行体的概念,它可以与同进程中的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。
3、区别:
主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。
4.优缺点:
线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。

进程挺关键的,推荐好好看看


第三章、处理机调度与死锁

处理机调度的层次
高级调度、低级调度、中级调度(了解一下)

作业调度算法
先来先服务算法(FSFS)、短作业优先调度算法(SJF)、优先级调度算法(PSA)、高响应比优先调度算法(HRRN)(要求理解)

什么是死锁
在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。

死锁产生的4个条件
1:互斥条件:一个资源一次只能被一个进程使用
2:请求保持条件: 一个进程因请求资源而阻塞时,对已经获得资源保持不放
3:不可抢占条件:进程已获得的资源在未使用完之前不能强行剥夺
4:循环等待条件:若干进程之间形成一种头尾相接的循环等待资源的关系

预防死锁的方法
破坏“请求保持”、破坏“不可抢占”、破坏“循环等待”(要求理解)

避免死锁的方法
系统安全状态、银行家算法(要求理解)

死锁也是一大考点,推荐好好看


第四章、存储器管理

连续分配存储管理方式
单一连续分配、固定分区分配、动态分区分配(了解一下)

动态分区分配算法
首次适应算法(FF)、循环首次适应算法(NF)、最佳适应算法(BF)、最坏适应算法(WF)(要求理解)

分片和分段感觉面试基本不问,可以了解一下,这里就不写了

顺便说一个问题,Windows下的内存是如何管理的
Windows提供了三种方式管理内存:
1:虚拟内存,适合用来管理大型对象或者结构数组
2:内存映射文件,适合用来管理大型数据流和再单个计算机上运行多个进程之间的共享数据
3:内存堆栈,适合用来管理大量的小对象

第五章、虚拟存储器

简单介绍一下虚拟存储器,首先为什么需要有虚拟存储器
1:有的作业很大,需求空间超过了内存总容量,导致作业不能运行
2:大量作业要求运行,但内存容量不足,大量的作业停留在外存等待

那么如何实现虚拟存储器,主要是请求分页存储器管理(请求分段可以自己了解)
请求分页存储管理除了要求一定容量的内存和外存,还需要
1.请求页表机制
2.缺页中断机构
3.地址变化机构
(大概了解一下)

重点是虚拟存储器的页面置换算法
在进程运行过程种,若所要访问的页面不在内存,就需要将它调入内存,而将哪个页面调入,就根据算法而定
1:最佳置换算法(Optimal)
2:先进先出算法(FIFO)
3:最近最久未使用(LEU)
4:最少使用算法(LFU)
笔试会考察,详细看看,要会使用算法进行置换,并且计算缺页

面试比较关键的感觉就是这些内容,后面文件管理与磁盘存储器管理可以了解一下
#学习路径#
全部评论
m
点赞 回复 分享
发布于 2023-08-12 16:06 湖北
强强强
点赞 回复 分享
发布于 2019-11-06 11:58
哥哥太强了!
点赞 回复 分享
发布于 2019-09-05 11:26
tql
点赞 回复 分享
发布于 2019-08-26 21:41
我的超越妹妹
点赞 回复 分享
发布于 2019-08-26 21:30
太顶了,你就是珠穆朗玛峰
点赞 回复 分享
发布于 2019-08-14 21:27
请问有没有什么视频课和这本书搭配可以推荐的?
点赞 回复 分享
发布于 2019-07-29 14:38
入门级可以看我的
点赞 回复 分享
发布于 2019-07-24 09:22
大佬厉害啊
点赞 回复 分享
发布于 2019-07-24 09:09
666
点赞 回复 分享
发布于 2019-07-24 08:45
大佬
点赞 回复 分享
发布于 2019-07-23 20:30
点赞 回复 分享
发布于 2019-07-23 20:21
不点赞,选择评论😁
点赞 回复 分享
发布于 2019-07-23 19:40
点赞点赞
点赞 回复 分享
发布于 2019-07-23 18:37
大佬可以开通下博客哦 有奖活动 https://www.nowcoder.com/discuss/208036?type=0&order=0&pos=3&page=3
点赞 回复 分享
发布于 2019-07-23 18:22
太顶了
点赞 回复 分享
发布于 2019-07-23 18:15
谢谢了
点赞 回复 分享
发布于 2019-07-23 17:51
哥哥太强了(破音)
点赞 回复 分享
发布于 2019-07-23 14:48
这就是大佬的样子吧,哥哥太强了!
点赞 回复 分享
发布于 2019-07-23 14:36
之前发过计算机网络的,有需要可以点开我的帖子看看
点赞 回复 分享
发布于 2019-07-23 14:35

相关推荐

点赞 评论 收藏
分享
评论
83
462
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务