操作系统面试题目

这篇博客主要介绍了操作系统面试中常见的知识点,包括进程与线程的区别、同步异步的概念、进程互斥与同步的解决方式、并发与并行的解释,以及进程调度算法的选择。此外,还提到了死锁的问题及其处理策略,并简单概述了内存管理的过程。
摘要由CSDN通过智能技术生成

校招重点设计:进程管理、内存管理、设备管理、文件管理基本不考。参考:https://blog.csdn.net/qq_39328436/article/details/113560889
一、进程与线程
引入线程之前,进程是资源分配的基本单位也是CPU调度的基本单位,引入线程之后,CPU调度的基本单位变成了线程,线程是为了提高系统的并发性,减少进程并发带来的时空开销。
1.根本区别:进程是资源分配的基本单位,线程是CPU调度的基本单位
2.进城拥有独立的内存空间,进程的各个线程共享这块空间,线程几乎不拥有资源。
3.进程和线程的通信方式不同。
进程间通信方式
共享内存:速度快,需要保持同步
消息队列:容量受到内存限制
管道:速度快,容量有限,只有父子之间进程能通信
线程间的通信方式:同步:多个线程通过synchronized关键字实现线程间通信。
while轮询方式:浪费CPU资源。
wait/notify机制:提高CPU利用率。
进程和程序的区别:程序是静态的指令集合;进程是指令的一次执行过程,是动态的。进程是系统资源分配和调度的基本单位。
进程实体的组成:PCB进程控制块,唯一表示一个进程,程序段,数据段。
二、同步、异步
进程异步:即进程走走停停那,以无法预知详见推进。
进程同步某些进程之间的顺序确定,a运行结束B才能运行,即进程间的直接制约关系。
进程互斥:多个进程顺序访问临界资源,临界资源同一时间只能被一个进程访问,是进程之间的间接制约关系。
解决进程同步互斥的方式
最开始使用软件(算法)方式解决:单标志法、双标志先检查法、双标志后检查法等,有不满足空闲让进、让权等待原则。
硬件的中断屏蔽,指令法不能满足让权等待。
信号量机制运用PV操作解决同步互斥,但是可能放错PV位置。
管程集成了共享数据结构,及对这些数据结构的初始化和访问。解决了同步互斥问题,便于程序员编程。
操作系统的特征:并发、共享、虚拟、异步
操作系统的运行机制:两种程序:内核程序和应用程序,两种指令:特权指令和非特权指令,两种处理机状态:内核态和用户态。
三、并发、并行
并发指同一时间间隔内同时发生,即宏观上同时发生,微观上交替发生,
并行指同一时刻同时发生。
四、进程调度算法及其选择
1.先来先服务算法(FCFS):可用于作业调度和进程调度
2.短作业优先算法:(SPF)可用于作业调度和进程调度
3.时间片轮转算法:时间片用完后,调度该进程进入就绪队列末尾。
4.多级反馈队列调度算法:设置多岗位就绪队列,不同的优先级,进程在第一个优先级队列的时间片用完后放入第二个队列的末尾,第一个优先级队列的所有进程运行完在运行下一个队列的进程。(照顾没有指明进程长度的短进程)优先级降低时间片变长。
5.优先权调度算法:(有非抢占式(适用于实时性要求不严的实时系统)和抢占式(能较好满足紧迫作业的要求,用于比较严格的实时系统)两种)
如何选择?
根据实际问题,长作业还是短作业?饥饿是否有影响?是否有指定优先级?是否要求优先级动态变化?是否要求足够公平?
剥夺方式的进程剥夺原则有:优先权原则、短进程优先原则、时间片原则。
选择方式可以根据实时系统和非实时系统。
对于普通进程采用动态优先调度,对于实时进程采用先来先服务和时间片轮转两种调度策略。
UNIX的进程调度算法采用多级反馈机制,保证高优先级的作业得到响应的同时使短进程迅速完成。但是不断有新进程到来时,长进程可能饥饿。
Windows系统调度单位是线程而不是进程,采用基于优先级的抢占式多处理器系统。根据优先级和时间片来调度。
五、死锁
死锁:各进程相互等待对方手里的资源,导致进程阻塞,都无法向前推进。
产生的必要条件:互斥、不可剥夺、循环等待、请求保持(持有资源的同时请求资源)
产生的原因:进程之间竞争资源、推进顺序不当、信号量使用不当。
死锁的处理策略
发生之前1.预防死锁(破坏四个必要条件)2.避免死锁:银行家算法
发生之后1.检测死锁2.解除死锁:资源剥夺法、撤销进程法、进程回退法。
内存管理
程序到可执行文件的过程
1.编译:高级语言编译后为机器语言,生成多个目标模块,object文件
2.链接:将多个目标模块链接,形成完整的装入模块,形成逻辑地址
装入:将装入模块装入内存,逻辑地址转化为物理地址。
基本分页和基本分段的对比

本项是一个基于SSM(Spring+SpringMVC+MyBatis)后端框架与Vue.js前端框架开发的疫情居家办公系统。该系统旨在为居家办公的员工提供一个高效、便捷的工作环境,同时帮助企业更好地管理远程工作流程。项包含了完整的数据库设计、前后端代码实现以及详细的文档说明,非常适合计算机相关专业的毕设学生和需要进行项实战练习的Java学习者。 系统的核心功能包括用户管理、任务分配、进度跟踪、文件共享和在线沟通等。用户管理模块允许管理员创建和管理用户账户,分配不同的限。任务分配模块使项经理能够轻松地分配任务给团队成员,并设置截止日期。进度跟踪模块允许员工实时更新他们的工作状态,确保项按计划进行。文件共享模块提供了一个安全的平台,让团队成员可以共享和协作处理文档。在线沟通模块则支持即时消息和视频会议,以增强团队之间的沟通效率。 技术栈方面,后端采用了Spring框架来管理业务逻辑,SpringMVC用于构建Web应用程序,MyBatis作为ORM框架简化数据库操作。前端则使用Vue.js来实现动态用户界面,搭配Vue Router进行页面导航,以及Vuex进行状态管理。数据库选用MySQL,确保数据的安全性和可靠性。 该项不仅提供了一个完整的技术实现示例,还为开发者留下了扩展和改进的空间,可以根据实际需求添加新功能或优化现有功能。
本项是一个基于SSM(Spring+SpringMVC+MyBatis)后端框架与Vue.js前端框架开发的网上球鞋竞拍系统。该项旨在为球鞋爱好者提供一个便捷、高效的在线竞拍平台,用户可以在此平台上浏览、搜索、竞拍心仪的球鞋,并参与到各种有趣的竞拍活动中。 系统的主要功能包括用户注册登录、球鞋信息展示、竞拍活动创建与管理、实时竞拍以及交易安全保障等。用户可以通过注册账号后,浏览平台上发布的各类球鞋信息,包括品牌、型号、颜色、尺码以及当前竞拍状态等。系统支持用户创建和管理自己的竞拍活动,设定竞拍规则和时间,同时提供实时竞拍功能,确保公平、透明的交易过程。 在技术实现上,后端采用SSM框架进行开发,Spring负责业务逻辑层,SpringMVC处理Web请求,MyBatis进行数据库操作,保证了系统的稳定性和扩展性。前端则使用Vue.js框架,结合Axios进行数据请求,实现了前后端分离,提高了开发效率和用户体验。 数据库设计方面,系统采用了MySQL数据库,存储用户信息、球鞋信息、竞拍活动等数据,确保数据的安全性和完整性。此外,项还包含了详细的文档资料,包括需求分析、系统设计、数据库设计以及测试报告等,为项的实施和维护提供了有力的支持。 该项不仅适合作为计算机相关专业学生的毕业设计题,也适合Java学习者进行实战练习,通过在此基础上进行功能扩展和改进,可以进一步提升编程技能和项管理能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值