首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
在迎接offer的候选人1
西安工程大学 计算机类
关注
已关注
取消关注
@黎笛:
【八股文】操作系统
1.进程和线程的区别进程是资源分配的基本单位,实现了操作系统的并发线程是程序运行的基本单位,线程是进程的子任务2.进程有哪几种状态就绪状态:进程已获得除处理机以外的所需资源,等待分配处理机资源运行状态:占用处理机资源运行,处于此状态的进程数小于等于cpu数阻塞状态:进程等待某种条件,在条件满足之前无法执行3.进程通信的方式进程之间的信息交换管道(pipe):管道可用于具有亲缘关系的父子进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间通信信号(signal):信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生消息队列:是消息的链接表,它克服了上两种通信方式中信号量有限的缺点,具有写权限的进程可以按照一定得规则向消息队列中添加新信息;对消息队列有读权限得进程则可以从消息队列中读取信息;共享内存:可以说这是最有用的进程间通信方式。它使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程中对共享内存中数据得更新。这种方式需要依靠某种同步操作,如互斥锁和信号量等;信号量:主要作为进程之间及同一种进程的不同线程之间得同步和互斥手段;套接字:这是一种更为一般得进程间通信机制,它可用于网络中不同机器之间的进程间通信,应用非常广泛。4.进程同步的方式并发进程在一些关键点上可能需要互相等待与互通消息,这种相互制约的等待与互通消息被称为进程同步,也就是保证多个进程能有条不紊的运行。进程同步的方式:临界区:对临界资源进程访问的那段代码,为了互斥访问临界资源,每个进程在进入临界区之前,需要先进行检查同步与互斥信号量:整型变量,可以进行PV操作管程:把控制的代码独立出来5.进程调度算法先来先服务(FCFS)先请求CPU的进程先分配到CPU短作业优先(SJF)用时间长度决定优先级,抢占式优先级调度算法可以抢占式,也可以是非抢占式的。优先级越高越先分配到CPU。相同优先级先到先服务,存在的主要问题是:低优先级进程无穷等待CPU,会导致无穷阻塞或饥饿;解决方案:老化时间片轮转调度算法队列中的进程被分配时间片,时间片到则退出对CPU资源的使用多级队列调度算法将就绪队列分成多个独立的队列,每个队列都有自己的调度算法,队列之间采用固定优先级抢占调度。其中,一个进程根据自身属性被永久地分配到一个队列中。多级反馈队列调度算法与多级队列调度算法相比,其允许进程在队列之间移动:若进程使用过多CPU时间,那么它会被转移到更低的优先级队列;在较低优先级队列等待时间过长的进程会被转移到更高优先级队列,以防止饥饿发生。6.进程控制块PCB的作用记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统的记录型数据结构作用:1)进程的唯一标识2)能实现间断性运行方式3)提供进程管理所需要的信息4)提供进程调度所需要的信息5)实现与其他进程的同步与通信7.信号量机制实现进程同步和互斥信号量其实就是个计数器,简单一点的例子就是a进程访问临界资源,把信号量设置为0,然后b进程也想访问,发现信号量为0,无法访问用户进程可以通过使用操作系统提供的一对原语对信号量进行操作,从而很方便的实现了进程互斥,进程同步。信号量机制实现进程互斥步骤:1)分析并发进程的关键活动,划定临界区2)设置互斥信号量mutex,初值为13)在临界区之前执行P4)在临界区之后执行Vmutex=1,标识两个进程皆未进入需要互斥的临界区mutex=0,标识有一个进程进入临界区运行,另外一个必须等待,挂入阻塞队列mutex=-1,表示有一个进程正在临界区运行,另外一个进程因等待而阻塞在信号量队列中,需要被当前已在临界区运行的进程退出时唤醒信号量机制实现进程同步步骤:1)分析什么地方需要实现同步关系2)设置同步信号量S,初始为03)在“前操作”之后执行V(S)4)在“后操作”之前执行P(S)下面的代码中,S就是同步信号量,若先执行到了V(S),则s++,正常执行P(S),保证了代码4在代码2之后执行若先执行P(S),s–之后表示没有可用资源,P操作会执行block原语,主动请求阻塞P(1) { 代码1; 代码2; V(S); 代码3;}P(2) { P(S) 代码4; 代码5; 代码6;}8.生产者-消费者模型生产者-消费者问题系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品使用需求:生产者每生产一个产品,就消耗一个缓冲区,只有当缓冲区不满的时候才能放入消费者每消费一个产品,就消耗一个产品,只有当缓冲区不空的时候才能消费做法:因为缓冲区是临界资源,所以在访问的时候需要一个互斥信号量,实现互斥访问为了同步生产者和消费者的操作,需要记录缓冲区的剩余大小empty和产品的个数full。当缓冲区大小不为0时,生产者才能放入产品;当产品个数不为0时,消费者才能拿走产品。注:同步在前,互斥在后,防止死锁producer() { while(1) { 生产一个产品; P(empty); //消耗一个空闲缓冲区 P(mutex); 把产品放入缓冲区; //临界区 V(mutex); V(full); //增加一个产品 }}consumer() { while(1) { P(full); //消耗一个产品 P(mutex); 从缓冲区取出一个产品; V(mutex); V(empty); //增加一个空闲缓冲区 使用产品; }}9.什么是死锁?死锁产生的条件死锁:各进程因竞争资源出现的“无限等待”死锁产生的必要条件:互斥条件:只要对必须互斥使用的资源的争抢才会导致死锁不剥夺条件:进程所获得的资源在未使用完之前,不能由其他进程强行夺走,只能主动释放请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求循环等待条件:存在一种进程资源的循环等待链
点赞 6
评论 1
全部评论
推荐
最新
楼层
滴滴
校招火热招聘中
官网直投
相关推荐
腾讯内推找我
昨天 18:05
腾讯_高级技术专家
求求大家投下我们腾讯吧,hc还空50%以上,而且又添加了hc
想来腾讯的,扫我内推码投递,然后牛客私信我,我帮忙推进面试。如果遇到自己投递的无法内推的也可以牛客私信我,我推进。
点赞
评论
收藏
转发
杨海南
05-21 20:04
Java
小米一面已OC
Spring常用的注解项目相关IoC和AOPRedis数据结构MySQL隔离级别Java多线程Sleep和WaitRedis消息队列为什么用B+树索引Java多线程,线程池HashMapConcurrentHashMap算法题:力扣125验证回文串
小米开奖115人在聊
查看9道真题和解析
点赞
评论
收藏
转发
张笃韬
04-07 00:10
ITMO University 计算机类
这能找到实习吗
😨
点赞
评论
收藏
转发
我用的是CPP
05-17 17:18
C++
C++面试——内存管理、堆栈、指针50问
一、内存管理1、简述C++的内存管理内存分配方式:在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。堆,就是那些由new分配的内存块,一般一个new就要对应一个delete。自由存储区,就是那些由malloc等分配的内存块,和堆是十分相似的,不过是用free来结束自己的生命。全局/静态存储区,全局变量和静态变量被分配到同一块内存中常量存储区,这是一块比较特殊的存储区,里面存放的是常量,不允许修改。常见的内存错误及其对策:(1)内存分配未成功,却使用了它。(2)...
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
提到的真题
返回内容
全站热榜
1
...
换导师
1.1W
2
...
写在最后,一个大专人9年的自述
8827
3
...
爱华信华等华
7294
4
...
双非本 腾讯WXG暑期已offer | 附面经
6929
5
...
荣耀一面
6319
6
...
开摆了,写小说去了
6161
7
...
没offer的我们也很优秀偶
6084
8
...
计算机专业的爽了,彻底爽了
5895
9
...
华为暑期开奖
5296
10
...
华为暑期开奖
4916
正在热议
#
牛客帮帮团来啦!有问必答
#
844798次浏览
13279人参与
#
机械制造薪资爆料
#
322354次浏览
3747人参与
#
晒一晒我的offer
#
3492083次浏览
55492人参与
#
金三银四,你有感觉到吗
#
332098次浏览
4244人参与
#
0offer是寒冬太冷还是我太菜
#
431191次浏览
4962人参与
#
实习生如何通过转正
#
28165次浏览
366人参与
#
互联网公司评价
#
85830次浏览
1150人参与
#
我在牛爱网找对象
#
51307次浏览
337人参与
#
运营面经
#
15407次浏览
316人参与
#
如何缓解入职前的焦虑
#
36308次浏览
358人参与
#
海康威视求职进展汇总
#
102941次浏览
1227人参与
#
国企vs私企,你更想去?
#
21029次浏览
216人参与
#
毕业租房也有小确幸
#
27422次浏览
1500人参与
#
荣耀求职进展汇总
#
73371次浏览
747人参与
#
投了多少份简历才上岸
#
61017次浏览
981人参与
#
实习必须要去大厂吗?
#
14561次浏览
235人参与
#
你遇到过哪些神仙同事
#
19282次浏览
283人参与
#
职业发展规划如何回答
#
12319次浏览
85人参与
#
你已经投递多少份简历了
#
312151次浏览
4618人参与
#
实习工作,你找得还顺利吗?
#
43751次浏览
484人参与
牛客网
牛客企业服务