这两日整理了很多编程方面的资料:教学视频、书籍资源以及实战项目全部放在了百度网盘里,资源的目录以及获取方式都放在了文末的图上,你可以直接翻至文末查看。

有过面试经历的人都知道操作系统是面试官必问的几大类型题目之一,在上一期我们已经更新另一大板块的题目常见面试题整理--数据库篇

这一期文章,我们将继续更新操作系统相关的面试题,希望可以给需要面试的、准备面试的同学一些帮助。

(一)请分别简单说一说进程和线程以及它们的区别。

  • 进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位。
  • 线程是进程的实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。
  • 一个进程可以有多个线程,多个线程也可以并发执行

如果你对进程或者线程不太熟悉,建议阅读:进程与线程的一个简单解释

(二)线程同步的方式有哪些?

  • 互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。
  • 信号量:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。
  • 事件(信号):通过通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作。

经两位大大的指正,现已删除临界区。感谢:@真姬酱@安阳

如果你对线程同步的方式不太熟悉,建议阅读:线程同步的几种方式

(三)进程的通信方式有哪些?

主要分为:管道、系统IPC(包括消息队列、信号量、共享存储)、SOCKET

管道主要分为:普通管道PIPE 、流管道(s_pipe)、命名管道(name_pipe

  • 管道是一种半双工的通信方式,数据只能单项流动,并且只能在具有亲缘关系的进程间流动,进程的亲缘关系通常是父子进程
  • 命名管道也是半双工的通信方式,它允许无亲缘关系的进程间进行通信
  • 信号量是一个计数器,用来控制多个进程对资源的访问,它通常作为一种锁机制。
  • 消息队列是消息的链表,存放在内核中并由消息队列标识符标识。
  • 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
  • 共享内存就是映射一段能被其它进程访问的内存,这段共享内存由一个进程创建,但是多个进程可以访问。

如果你对进程的通信方式不太熟悉,建议阅读: 进程间的几种通信方式

(四)什么是缓冲区溢出?有什么危害?其原因是什么?

缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量,溢出的数据覆盖在合法数据上。

危害有以下两点:

  • 程序崩溃,导致拒绝额服务
  • 跳转并且执行一段恶意代码

造成缓冲区溢出的主要原因是程序中没有仔细检查用户输入。

如果你想深入了解缓冲区溢出,推荐阅读:缓冲区溢出攻击

(五)什么是死锁?死锁产生的条件?

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

死锁产生的四个条件(有一个条件不成立,则不会产生死锁)

  • 互斥条件:一个资源一次只能被一个进程使用
  • 请求与保持条件:一个进程因请求资源而阻塞时,对已获得资源保持不放
  • 不剥夺条件:进程获得的资源,在未完全使用完之前,不能强行剥夺
  • 循环等待条件:若干进程之间形成一种头尾相接的环形等待资源关系

如果对死锁还不是太熟悉,建议阅读:死锁产生的原因和解锁的方法

(六)进程有哪几种状态?

  • 就绪状态:进程已获得除处理机以外的所需资源,等待分配处理机资源
  • 运行状态:占用处理机资源运行,处于此状态的进程数小于等于CPU数
  • 阻塞状态: 进程等待某种条件,在条件满足之前无法执行

如果你对进程的几种状态以及中间的装换不太了解,建议阅读:进程的三种状态及转换

(七)分页和分段有什么区别?

  • 段是信息的逻辑单位,它是根据用户的需要划分的,因此段对用户是可见的 ;页是信息的物理单位,是为了管理主存的方便而划分的,对用户是透明的。
  • 段的大小不固定,有它所完成的功能决定;页大大小固定,由系统决定
  • 段向用户提供二维地址空间;页向用户提供的是一维地址空间
  • 段是信息的逻辑单位,便于存储保护和信息的共享,页的保护和共享受到限制。

如果你对分页和分段还不太了解,建议阅读:分段和分页

(八) 操作系统中进程调度策略有哪几种?

FCFS(先来先服务),优先级,时间片轮转,多级反馈

如果你想深入的了解这几种调度策略,推荐阅读:几个常用的操作系统进程调度算法

(九)说一说进程同步有哪几种机制。

原子操作、信号量机制、自旋锁管程、会合、分布式系统

如果你想深入的了解这几种机制,推荐阅读: 进程同步的几种机制

(十)说一说死锁的处理基本策略和常用方法。

解决死锁的基本方法如下:

预防死锁、避免死锁、检测死锁、解除死锁

解决四多的常用策略如下:

鸵鸟策略、预防策略、避免策略、检测与解除死锁

如果你对死锁的处理策略不是太熟悉,推荐阅读:产生死锁的原因和必要条件+解决死锁的基本方法

这两日整理了很多编程方面的资料,希望这些资料可以对你们有些帮助,资料主要包括下图所示的语言范畴,每一个资料都是精心整理的。资料获取步骤如下说明

本文参考文献和文章:

「1」操作系统常见面试题总结 - youngchang的开发博客

「2」 操作系统面试题 - iWan

「3」进程间的几种通信方式

「4」操作系统各大公司笔试题汇总

「5」解决死锁的基本方法

学习编程,欢迎关注专栏:学习编程 - 知乎专栏

常见面试题整理--操作系统篇(每位开发者必备)相关推荐

  1. 常见面试题整理--操作系统篇

    (一)请分别简单说一说进程和线程以及它们的区别. 进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位. 线程是进程的实体,是CPU调度和分派的基本单位 ...

  2. 常见面试题整理--数据库篇(每位开发者必备

    常见面试题整理--数据库篇(每位开发者必备) 转载自:https://zhuanlan.zhihu.com/p/23713529        知乎专栏 继续前面有关于的Python面试的两篇内容:P ...

  3. 面:常见面试题整理(操作系统)

    常见面试题整理(操作系统) 常见面试题整理(操作系统) 2018年03月08日 20:47:11 逃离地球的小小呆 阅读数:20782 (一)请分别简单说一说进程和线程以及它们的区别. 进程是具有一定 ...

  4. Java常见面试题整理(一)

    Java常见面试题整理 字符串 抽象类与接口 集合 多线程 锁 IO流 网络编程 字符串 主要包括String.StringBuffer和StringBuilder基本概念 String相关知识 St ...

  5. 操作系统常见面试题整理

    (一)请分别简单说一说进程和线程以及它们的区别. 进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位. 线程是进程的实体,是CPU调度和分派的基本单位 ...

  6. (操作系统) 常见面试题整理

    (一)请分别简单说一说进程和线程以及它们的区别. 进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位. 线程是进程的实体,是CPU调度和分派的基本单位 ...

  7. 常见面试题整理(操作系统)

    (一)请分别简单说一说进程和线程以及它们的区别. 进程是具有一定功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源调度和分配的一个独立单位. 线程是进程的实体,是CPU调度和分派的基本单位 ...

  8. 测试开发java常见面试题_Java常见面试题200+,学习、面试必备

    本套Java面试题,选取了企业面试最常问到的问题,可以做为Java工程师的面试宝典,也可以做为想要不断完善和扩充自己 java 技术的学习者. 主要包含: Java 基础.容器.多线程.反射.对象拷贝 ...

  9. 用python编制一个的类_常见面试题整理--Python概念篇

    前言 众所周知,每年的三月份和四月份都是招聘.找工作的高峰期,所以被人们成为金三银四,所以小编特地整理了一些关于Python的面试题,希望对你们有所帮助! (一).这两个参数是什么意思:*args,* ...

最新文章

  1. python安装在什么系统下最好-windows系统下Python环境的搭建
  2. javascript创建类方法汇总(包含es6语法)
  3. 生成树协议实验报告_STP生成树协议
  4. 雅虎与软银构和:拟出售雅虎日本35%股份
  5. Loadruner压数据库oracle,LoadRunner连接Oracle数据库(转)
  6. win10高分辨率下修改字体显示大小(不是缩放百分比)
  7. php中的__FUNCTION__
  8. Argument list too long 文件数过多
  9. android重复拉起app首页_Android进程管理:Framework层概念
  10. vmware虚拟机安装gho版本系统
  11. 宝塔面板 python管理器2.0安装Mrdoc
  12. Android简单闹钟设置
  13. ma5671怎么设置_电信/联通/移动,更换华为MA5671光猫详细教程。
  14. TypeScript学习--Symbols
  15. python中英文文本情感分析
  16. pandas 获取Dataframe元素值的几种方法
  17. 真是「狗」了,知乎「吃相」太难看了
  18. 手把手教你打造360手机Android应用商店高级开发实战视频教程
  19. pytorch入门(二):数据加载和处理
  20. pm2 部署 nuxt3.js 项目并设置服务器重启时项目自动重启

热门文章

  1. 特征提取——灰度共生矩阵(GLCM)
  2. laravel 事务_【钢结构建筑】gmp建筑师事务所 | 杭州铁路南站
  3. Shutdown自定义自动关机软件
  4. windows7 安装.Net Framework 4.6.2微软官方版(离线安装包)
  5. 民间版知乎用户分析报告
  6. JavaScript video标签使用
  7. 机器学习-聚类PPT
  8. html里的input属性,HTML中强大的input标签属性
  9. 通用寄存器介绍和段寄存器的介绍
  10. 剑指offter 动态规划