当前位置: 首页 > 装修知识 > 正文
操作系统的四大特性
2022-10-17 01:48:36这一篇文章,楼主主要分享一下面试过程中遇到的关于操作系统的知识总结
因为水平有限,欢迎各位小伙伴在评论区里留言指正
另外运行内存是什么意思,喜欢我文章的小伙伴,点赞,收藏,关注走一波呀,比心 ~
操作系统的四大特性 操作系统基本功能 内存管理: 文件管理: 设备管理: CPU CPU调度 中级调度 低级调度(进程调度/线程调度) Q:某一进程CPU使用率 50% 是什么意思? Q:如何让CPU使用率固定在50%【仅限于单核CPU】 内存
内存的内部是由各种 IC 电路组成的,它的种类很庞大,但是其主要分为三种存储器:
内存管理机制 非连续分配管理方式:非连续分配管理方式允许一个程序使用的内存分布在离散或者说不相邻的内存中 分页和分段共同点和区别 基本分页储存管理方式 基本分段储存管理方式 段页式内存管理 Q:页式存储,段式存储,段页式存储,引入快表,访问内存次数 物理内存 & 虚拟内存 进程的内存分配 & 内存访问 虚拟内存置换算法 先进先出(FIFO)页面置换算法: 最近最久未使用算法LRU: 时钟算法clock(也被称为是最近未使用算法NRU): 改进型Clock算法: 最少使用算法LFU: 用户态&内核态 系统调度 常见的系统调用: Q:Debug时看到的是物理内存还是虚拟内存 ? 操作系统是如何实现锁的? 中断禁止和启用( /) 内存加载和存入(load/store)测试与设置(test and set)指令 禁止中断这个操作是一个硬件步骤,中间无法插入别的操作。同样,中断启用,测试与设置均为一个硬件步骤的指令。在这些硬件原子操作之上,我们便可以构建软件原子操作:锁,睡觉与叫醒,信号量等。
操作系统使用锁的原语操作 一个线程自愿放弃CPU而将控制权交给操作系统调度器(通过yield之类的操作系统调用来实现); 一个线程被强制放弃CPU而失去控制权(通过中断来实现) 使用测试与设置指令来实现锁 设置操作:将1写入指定内存单元; 读取操作:返回指定内存单元里原来的值(写入1之前的值) 操作系统中的锁机制 RCU:read-copy-,在修改数据时,首先需要读取数据,然后生成一个副本,对副本进行修改,修改完成后,再将老数据成新的数据。【有点像 copy-on-write】 中断 当一个时间片运行完后,CPU会接收到计时部件(操作系统内核的时钟管理部件)发出的中断信号,CPU立即进入核心态,把CPU的使用权限交还给操作系统 当中断发生后,当前运行的进程暂停运行,操作系统内核对中断进程处理,切换进程(根据进程调度算法),在完成切换进程的一系列工作后,操作系统又会将CPU的使用权交还给用户进程 切换到的进程2拿到CPU执行权就会在用户态下执行 中断的处理过程 执行完每个指令后,CPU都要检查当前是否有外部中断信号 如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字PSW、程序计数器、各种通用寄存器) 根据中断信号类型转入相应的中断处理程序 恢复进程的CPU环境并退出中断,返回原进程继续往下执行 中断的分类 缺页中断 线程 Q:操作系统临界资源的访问 互斥量(Mutex):采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。
因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。比如 Java 中的 关键词和各种 Lock 都是这种机制,本质是一个计数器 信号量PV():它允许同一时刻多个线程来访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量【用来实现生产者消费者模型】 事件event:通过通知操作的方式来保持多线程同步,还可以方便实现多线程优先级的比较操作,Wait/ 线程通信 wait/机制: 管道通信:java.io. 和 java.io.进行通信 进程 进程状态 进程同步 临界区:对临界资源进行访问的那段代码称为临界区。 同步与互斥: 信号量:信号量()是一个整型变量,可以对其执行 down 和 up 操作,也就是常见的 P 和 V 操作。 管程:管程在功能上和信号量及PV操作类似,属于一种进程同步互斥工具,但是具有与信号量及PV操作不同的属性。管程把控制的代码独立出来,封装了同步操作,对进程隐蔽了同步细节,简化了同步功能的调用界面。
用户编写并发程序如同编写顺序(串行)程序。 进程同步和进程通信的区别 Q:常见的进程间的通信方式(IPC,Inter- )? 命名管道(FIFO):克服了管道没有名字的限制,具有管道所具有的功能外,还允许无亲缘关系进程间的通信,去除了管道只能在父子进程中使用的限制 信号():信号是在软件层次上对中断机制的一种模拟,一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一致的。 消息队列:消息队列提供了从一个进程向另一个进程发送一个数据块的方法。 共享内存:共享内存可以很好解决拷贝消耗的时间。 信号量(mutex):为了避免共享内存多进程竞争内存的问题(线程安全),使用信号量。 :套接字进行通信,与其他机制不同的是,它可用于不同机器之间的进程间通信,应用非常广泛。 进程的调度
一. 批处理系统
短进程优先调度算法: 最短剩余时间优先 time next(SRTN)
二. 交互式系统
多级反馈队列调度算法: 设置多个就绪队列,并为各个队列赋予不同的优先级;该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权愈高的队列中,为每个进程所规定的执行时间片就愈小。 当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度;当轮到该进程执行时,如它能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行; 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行 优先权调度算法:把处理机分配给就绪队列中优先权最高的进程
三. 实时系统
Q:有5个任务,每个任务权重15524,执行时间15534,如何用最短的时间执行完? 进程和线程的区别 多进程 & 多线程 线程: 启动一个线程所花费的空间远远小于启动一个进程所花费的空间,而且,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间(因为在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段。线程之间却可以使用相同的地址空间,共享大部分数据); 线程间方便的通信机制,由于同一进程下的线程之间共享数据空间,所以一个线程的数据可以直接为其它线程所用,这不仅快捷,而且方便; 使多CPU系统更加有效。操作系统会保证当线程数不大于CPU数目时,不同的线程运行于不同的CPU上; 多进程 多线程: 每个线程与主程序共用地址空间,受限于2GB地址空间; 线程之间的同步和加锁控制比较麻烦; 一个线程的崩溃可能影响到整个程序的稳定性; 到达一定的线程数程度后,即使再增加CPU也无法提高性能,例如 2003,大约是1500个左右的线程数就快到极限了(线程堆栈设定为1M),如果设定线程堆栈为2M,还达不到1500个线程总数; 线程能够提高的总性能有限,而且线程多了之后运行内存是什么意思,线程本身的调度也是一个麻烦事儿,需要消耗较多的CPU 协程 协程与线程区别: Q:协程是如何更少占用资源的 协程占用内存少 孤儿进程 & 僵尸进程【怎么产生的?有什么危害?怎么去预防?】 预防/解决方法: 同步 & 异步 异步:执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程 操作系统中的堆栈 堆: 区别: 死锁 产生死锁的原因 产生死锁的必要条件 处理策略 解决死锁:【撤销进程法】 死锁预防:破坏死锁产生的四个必要条件中的一个或多个,以避免发生死锁。
【资源有序分配法】 避免死锁:判断是否会出现死锁就是看是否能找到一个安全序列,使得进程按推进顺序为每个进程分配其所需资源,使每个进程都能顺序执行。例如:【银行家算法】 检测死锁并恢复:资源分配图;从一个或多个进程中抢占资源分配给死锁进程;终止所有的死锁进程。【资源分配图化简法】 如何发现死锁? 使用jsp查找程序进行:jps是jdk提供的一个工具,可以查看到正在运行的java进程 使用查看线程堆栈信息::jdk提供的一个工具,可以查看java进程中线程堆栈信息,后面可以查看到具体在代码哪一行。 也通过jdk提供的工具排查死锁问题:是jdk提供的一个可视化的工具,方便排查程序的一些问题,如:程序内存溢出、死锁问题等等。
以上内容为蝴蝶兰风评投稿者为大家精心整理,希望对大家有所帮助!
- 上一篇:香港100尺等于多少平方米
- 下一篇:怎么折纸垃圾桶
猜你喜欢
- 09-29 离婚又复婚还能幸福吗_离婚又复婚了感情会好吗?
- 09-29 盲目钢琴考级,孩子却没有这五种学习能力!
- 09-29 不是所有的“奉子成婚”都会幸福,这种婚姻潜在的矛盾你要记清楚
- 09-29 灭火器的使用方法|灭火器的正确使用方法及注意事项
- 09-29 水泥密度|散装水泥的密度大致为多少?
- 09-29 家装网站|国内十大优秀家居装修网站类大全推荐与介绍
留言与评论(共有 条评论) |
- 搜索
-
- 10-18APF防水卷材
- 10-18液压油过滤器规格型号
- 10-18玻璃胶多久能干?使用注意事项请谨记
- 10-18防雷接地检测主要都检测什么?
- 10-18空调大插头买什么插板(空调插头应该买多大的插排)
- 10-18粘贴钢板加固怎么施工?注意事项是什么?如何选材料、粘钢胶标准是什么
- 10-18干货 | 岩板界的什么规格才能稳占家居空间的C位?
- 10-18不锈钢锅烧黑了怎么办 怎么清理 锅烧干后能直接倒水吗?
- 10-18一寸水管直径是多少0
- 10-18冰箱温度调到多少合适 细节决定保鲜