目录:点我

1. 操作系统的几大功能是什么?

答:操作系统的功能包括进程管理、内存管理、文件管理、输入输出设备管理:

  • 进程管理:进程控制、进程同步、进程通信、进程调度
  • 内存管理:内存保护、内存分配、内存扩充
  • 文件管理:文件存储空间管理、目录管理、文件保护、文件操作管理
  • 设备管理:设备分配、设备传输控制、设备独立性、接口管理

2. 硬实时和软实时的区别?

答:硬实时系统要求所有动作必须绝对地在规定的时刻发生,比如在航空航天领域所用的系统;软实时系统能接受偶尔违反时间规定的操作,这些操作不会引起重大的损害,比如飞机订票系统。

  • 硬实时系统:个人认为硬实时系统应该是严格的实现计划的系统,如非抢占式轮转调度算法
  • 软实时系统:个人认为抢占式调度算法应该都可以实现该系统,如优先级、高相应比算法等

3. 中断的处理过程是什么?

答:详见该文章

4. 可屏蔽中断和不可屏蔽中断的区别是什么?

答:详见该文章

5. 进程三种基本状态是什么?在什么情况下转换?

答:

进程的三种基本状态:就绪、运行、阻塞

进程的五种基本状态:就绪、运行、阻塞、创建、终止

6. 通信过程中的阻塞态与非阻塞态是什么?

答:阻塞态与非阻塞态是程序等待调用结果时的状态。

  • 阻塞:发出一次请求后,在未得到返回结果前,线程挂起,此时线程无法做其他事情
  • 非阻塞:发出一次请求后,在未得到返回结果前,线程不会挂起,此时线程可以做其他事情;

7. 单工、半双工、全双工的是什么?

答:

  • 单工数据传输:只支持数据在一个方向上传输,同一时间只有一方能接受或发送信息,不能实现双向通信。例如电视、广播。
  • 半双工数据传输:允许数据在两个方向上传输,但是同一时刻只允许数据在一个方向上传输,在同一时间只可以有一方接受或发送信息,可以实现双向通信。例如对讲机。
  • 全双工通信:允许数据同时在两个方向上传输,要求发送设备和接收设备都有独立的接收和发送能力,同一时间可以同时接受和发送信息,实现双向通信。例如电话。

8. 进程之间如何通信?

答:

  • 共享存储:在通信的进程之间存在一块可直接访问的内存空间,两个进程通过对这片共享空间进行读/写操作实现通信。
  • 消息传递:进程间的数据交换以格式化的消息(Message)为单位,进程通过系统提供的发送消息和接收消息两个原语进行数据交换。进程可以通过消息缓冲队列直接通信,也可以通过中间实体信箱进行间接通信。
  • 管道通信:管道是指用于连接一个读进程和一个写进程以实现它们之间的通信的一个共享文件,又名pipe文件。管道机制必须提供互斥,同步和确定对方存在的能力。管道只能采用半双工通信,要实现进程双方互动通信,需要定义两个管道。

9. 操作系统中进程和线程有什么区别?进程或线程的资源可以共享吗?

答:

  • 进程:除处理机外的系统资源的分配单元。
  • 线程:处理机的分配单元,独立调度的基本单位。

二者比较:

  1. 调度:同一进程中线程的切换不会影响进程的切换,不同进程中线程的切换引起进程切换。
  2. 资源:进程是拥有资源的基本单位,而线程不拥有资源,只能使用所属进程的资源。进程的地址空间相互独立,同一进程中的线程则共享该进程的资源,某进程的线程对于其他进程不可见。
  3. 并发性:进程间可并发,线程间也可并发。
  4. 系统开销:进程调度的开销远大于线程,由于线程之间共享所属进程的资源,因此线程间通信非常容易实现。

10. 简要介绍进程调度算法

答:

  1. 先来先服务算法:顾名思义,谁来得早谁先上。
  2. 短作业优先算法:顾名思义,谁占用 CPU 的时间短谁上。
  3. 优先级调度算法:根据优先级调度。
  4. 高相应比优先调度算法:高相应比:(等待时间 + 要求响应的时间)/ 要求响应的时间,作为优先级进行调度。
  5. 时间片轮转算法:设定访问位与修改为,按顺时针进行轮转访问,依据规定进行调度。
  6. 多级反馈队列调度算法:综合多种调度算法进行调度。

11. 什么是操作系统里的‘锁’?

答:为了保证数据的一致性,在多线程编程中会用到锁,使得在某一时间点,只有一个线程进入临界区代码。信号量机制就是实现进程同步与互斥的机制。

12. 一些进程读了数据之后,另一些进程也读了数据,然后把修改后的数据写回去,这种情况怎么办呢?

答:典型的读者写者问题,解决方法是使用‘锁’机制对临界资源的访问进行限制,使得读者写者互斥访问数据。

13. 什么是原子操作?

答:原子操作就是必须一次性执行完的操作,该操作的结果只有完成与未完成两种情况,在完成原子操作中间不允许有其他操作进行干扰。

14. 什么是同步和互斥?

答:

  • 互斥:指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。
  • 同步:指在互斥的基础上,通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访问者同时访问资源。

15. 为什么要进程同步?进程同步遵循什么原则?

答:进程同步是为了完成某种任务而建立了多个进程,这些进程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。

原则:空闲让进、忙则等待、有限等待、让权等待。

16. 什么是饥饿?

答:指某进程因调度算法而导致长时间得不到响应的现象。

17. 信号量机制的原理是什么?

答:用变量代替资源的数量,利用 P、V 原子操作实现对资源访问顺序的管理。

18. P V操作是什么?

答:P 操作指的是申请使用某信号量,V 操作指的是对某信号量使用完毕,释放对它的占用。进行 P 操作时会判断申请的资源是否足够,进行 V 操作时会使资源数加一,同时唤醒等待该资源的进程(如果有的话)。

19. 什么是读写公平的读者-写者问题?

答:就是对读者实现了共享访问,对读者写者实现了互斥访问的状态。可以用一个计数器代表读者对当前资源的访问人数,当第一个读者申请该资源时,需要占用互斥信号量;当最后一个读者释放该资源时,需要释放互斥信号量;当写者访问该资源时,需要占用互斥信号量。

20. 什么是哲学家进餐问题?

答:就是 N 个哲学家抢 N 个筷子,假如每个人抢到一根,那么就会发生死锁,每个人都不能吃饭。解决方法是实现一个原子操作,要求只有能够同时拿起两只筷子时哲学家才会行动。

21. 操作系统中进程死锁怎么形成的?

答:形成死锁的原因是系统资源竞争和进程推进顺序不当,死锁有四个必要条件:互斥条件、不剥夺条件、请求并保持条件、循环等待条件。哲学家进餐问题中每个人抢到一只筷子就形成了死锁。

22. 什么是死锁?

答:死锁就是由系统资源竞争和进程推进顺序不当导致多个进程互相等待对方资源而无法顺利运行的情况,死锁有四个必要条件:互斥条件、不剥夺条件、请求并保持条件、循环等待条件。破解任意一个条件即可防止死锁:

  • 破坏互斥条件:将临界区改造为共享资源
  • 破坏不剥夺条件:申请得不到满足强制剥夺资源
  • 破坏请求和保持条件:申请得不到满足释放资源、运行前分配好所有资源
  • 破坏循环等待条件:给资源编号,按从小到大申请

死锁有四种处理方式:

  • 预防:破坏上述四个条件之一
  • 避免:银行家算法
  • 检查:资源分配图
  • 消除:资源剥夺法、撤销进程法、进程回退法

23. 什么是内存?

答:内存是计算机中重要的部件之一,它是外存与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。

24. 简述程序装入内存的过程

答:创建进程首先要将程序和数据装入内存,将用户源程序变为可在内存中执行的程序,通常需要以下几个步骤:

  • 编译:由编译程序将用户源代码编译成若干目标模块。
  • 链接:由链接程序将编译后形成的一组目标模块及所需的库函数链接到一起,形成一个完整的装入模块。
  • 装入:由装入程序将装入模块装入内存运行。

程序的链接有三种方式:

  • 静态链接:在程序装入前,先将各目标模块及它们所需的库函数链接成一个完整的可执行程序,以后不再拆开。
  • 装入时动态链接:将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的方式。
  • 运行时动态链接:对某些目标模块的链接,是在程序执行中需要该目标模块时才进行的。其优点是便于修改和更新,便于实现对目标模块的共享。

内存的装入模块在装入内存时有三种方式:

  • 绝对装入:在编译时编译程序将产生绝对地址的目标代码。绝对装入程序按照装入模块中的地址,将程序和数据装入内存。该方法只适用于单道程序环境。
  • 可重定位装入:多道程序环境下,由于多各目标模块采用逻辑地址(始址通常从0开始),因此采用可重定位装入方式。根据内存当前情况,将装入模块装入适当的位置,装入时对目标程序中指令和数据的修改过程成为重定位,地址变换通常是在装入时一次完成的,所以又称静态重定位,特点是作业装入前需分配全部内存空间,装入后不能扩充或移动。
  • 动态运行装入:也称动态重定位。装入程序把装入模块装入内存后。并不立即把装入模块中的相对地址转换为绝对地址,而是推迟到程序执行时再进行。特点是可以将程序分配到不连续的空间,程序运行前可以只装入部分代码,运行过程中需要动态申请分配内存,便于程序段的共享与虚拟空间技术的应用。

25. 什么是页表?

答:页表机制就是用固定大小的页来描述逻辑地址空间,用相同大小的页框(Frame)来描述物理内存空间,由操作系统实现从逻辑页到物理页框的页面映射,同时负责对所有页的管理和进程运行的控制。

26. 操作系统中分页式和分段式存储有什么区别?

答:对非连续分配管理方式,根据分区的大小是否固定分为分页存储和分段存储管理方式:

  • 分页存储:以页为单位进行内存分配,页的大小固定,其逻辑地址空间是一维的,只产生内部碎片。分页存储为了满足系统管理的需要,能实现离散分配,提高内存的利用率。
  • 分段存储:以段为单位进行内存分配,段的长度不固定,根据段名和段内地址得到具体存储地址,逻辑地址空间是二维的,只产生外部碎片。能更好的满足用户需求,更容易实现信息的共享和保护。

区别:

  1. 页是信息的物理单位,分页是为实现离散分配方式,以消灭内存的外部碎片,提高内存的利用率。分页仅仅是由于系统管理的需要,而不是用户的需要。段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要。
  2. 页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,由机器硬件实现,因而一个系统只能有一种大小的页面。段的长度不固定,取决于用户编写的程序,通常由编译程序在对源程序进行编译时根据信息的性质来划分。
  3. 分页的作业地址空间维一,即单一的线性空间,只需用一个标识符即可标识地址。分段的作业地址空间是二维的,标识一个地址时既需给出段名又需给出段内地址。

27. 有哪些页面置换算法?LRU是什么?

答:

  • 最佳置换算法 OPT:淘汰当前时间之后最长时间内不再使用的页面。
  • 先进先出页面置换算法 FIFO:顾名思义。
  • 最近最久未使用置换算法 LRU:在所有页面中淘汰未访问时间最长的页面。
  • 时钟置换算法 CLOCK:在 LRU 的基础上优先替换没有变化的页面。

引入页面置换是为了实现虚拟存储,虚存是以时间换空间的技术,提高资源利用率。

28. CLOCK 算法是如何实现的?

答:给每帧关联一个附加位作为使用位。当某页首次装入主存时,将该页使用位设置为 1 。当该页随后再被访问到时,其使用位也被置为 1 。用于替换的候选帧集合可视为一个循环缓冲区,并有一个指针与之关联。当某页被替换时,该指针被设置成指向缓冲区的下一帧。当需要替换一页时,操作系统扫描缓冲区,以查找使用位被置为 0 的一帧。每当遇到一个使用位为 1 的帧时,操作系统就将该位重新置为 0 ;若在这个过程开始时,缓冲区所有帧的使用位均为 0 ,则选择遇到的第一个帧替换;若所有帧的使用位均为 1 ,则指针在缓冲区中完整循环一周,把所有使用位都置为 0 ,并停留在最初的位置上,替换该帧中的页。

29. 行优先和列优先有什么的区别?

答:由于数据在存储器里面是按照行来存储的,如果采用行优先遍历,当我们读取一个元素,就会根据局部访问原理把与它相邻的元素都放入 Cache 中,这样在后面的元素访问时间会大大缩短。如果使用列优先遍历,则会因为每一次读取的数据都不在 Cache 中,导致访问时间大大增加。

30. 什么是文件系统?

答:文件系统是操作系统中与文件管理有关的软件和数据的集合。功能如下:

  • 实现按文件名存取文件信息。
  • 为用户提供统一友好的接口。
  • 实施对文件和文件目录的管理。
  • 文件存储器空间的分配与回收
  • 提供有关文件的共享和保护。

31. 文件的逻辑结构有哪些?

答:分为无结构文件和有结构文件两大类:

  1. 无结构文件(流式文件):将数据按顺序组织记录,以字节为单位。
  2. 有结构文件(记录式文件):顺序文件、索引文件、索引顺序文件、直接文件或散列文件。

32. 文件有哪些共享方式?

答:文件共享使得多个用户(进程)共享同一文件,系统中只需保留该文件的一份副本:

  • 基于索引结点的共享方式(硬链接):在文件目录中只设置文件名及指向相应索引结点的指针。在索引结点中有一个链接计数器,用于表示链接到本索引结点上的用户目录项的数目。
  • 利用符号链实现文件共享(软链接):只有文件拥有者才拥有指向其索引结点的指针,而共享该文件的其他用户只有该文件的路径名,并不拥有指向其索引结点的指针。优点是不会因为文件主删除共享文件后留下悬空指针;缺点是其他用户读共享文件时,需要根据文件路径名逐个查找,直到找到该文件的索引结点。

33. 为什么要有 FAT ?

答:FAT 是文件配置表,在显式链接分配中,将分配给文件的所有盘块号都放在文件分配表中,能有效支持直接访问。

34. 操作系统 IO 端口寻址指令有什么?两种指令系统有什么区别?

答:有统一编址方式和IO独立编址两种方式:

  • 统一编址:指把IO端口当做存储器的单元进行地址分配,不需要设置专门的IO指令,用统一的访存指令就可以访问IO端口。因为占用存储器地址,会使内存容量变小,而且利用存储器编址的IO设备进行数据输入输出操作,执行速度比较慢。
  • 独立编址:指IO端口地址与存储器地址无关,需要设置专门的输入输出指令访问端口。这种方式程序编制清晰,便于理解。但是增加了控制的复杂性。

35. 操作系统中用到了哪些数据结构?

答:实现进程调度需要用到队列、实现中断机制需要用到栈、实现对存储空间管理需要用到线性表、对文件管理需要用到树或图、部分信息的表示需要用到串。

36. 什么是微内核?什么是大内核?Linux 使用的是哪一种?

答:Linux 属于大内核,但是吸收了许多微内核的优点,具有模块化的设计结构。

  • 微内核:将内核中最基本的功能保留在内核,而将那些不需要在核心态执行的功能移到用户态执行,从而降低了内核的设计复杂性。微内核结构有效地分离了内核与服务、服务与服务,使得他们之间的接口更加清晰,维护的代价大大降低,各部分可以独立地优化和演进,从而保证操作系统的可靠性。但是因为需要频繁地在核心态和用户态之间进行切换,操作系统的执行开销偏大。
  • 大内核:将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务。因为各管理模块之间共享信息,能有效利用相互之间的有效特性,所以拥有超高的性能优势。但由于体系结构和应用需求的不断发展,大内核的规模、设计难度急剧增长,面临软件危机的困境。
  • 库操作系统:为了减少开销,有人提出将系统服务作为运行库链接到用户程序的解决方案,这种体系结构称为库操作系统。

37. OS有哪些指标?

答:

  1. 计算性能:主要是CPU 的运算性能。
  2. 图形显示性能:主要就是显卡或者是GPU的性能。
  3. 网络性能:主要是网卡性能。
  4. 存储性能:主要是指内存的性能和硬盘性能。
  5. 能耗和散热性能

38. pid 是什么?

答:是进程标识符,用于标志各个进程,每个进程都有一个唯一的标识号。

39. 什么是系统调用?

答:指用户在程序中调用操作系统提供的一些子功能,系统调用可视为特殊的公共子程序。

40. 操作系统中 shell 是什么?

答:Shell 俗称‘壳’,指为使用者提供操作界面的软件。它接收用户命令,然后调用相应的应用程序。

41. PC 机的串口是同步的还是异步的?异步的定义是什么?

答:PC 机的串口是异步的。异步通信不要求所有部件严格的统一操作时间,而是采用应答的方式。因此各操作完成的时间不可确定,只能预估。应答方式有三种级别:

  • 不互锁:没有相互制约关系,主模块不必等待回答,等一段时间便撤销请求信号。
  • 半互锁:必须等回答才撤销请求信号。
  • 全互锁:主模块发出请求信号后,需等待从模块回答才撤销;从模块发出回答信号后,也必须等待主模块的回答才撤销。

42. 进程和程序的区别是什么?

答:

  • 进程:程序的一次执行过程,一个动态的过程。存在生命周期,包括进程的创建、进程运行、进程挂起、进程结束。
  • 程序:代码和数据的集合,一个静态的表示。

43. 系统中系统调用的过程是什么?

答:系统调用把应用程序的请求传给内核,调用相应的的内核函数完成所需的处理,然后将处理结果返回给应用程序。

44. 银行家算法是什么?

答:银行家算法是为了避免死锁所采用的一种算法,它首先需要记录各类系统资源数目,然后对进程的资源需求进行预分配,分配后检测是否构成死锁,若构成,则不允许将资源分配给该进程;若未构成,则将资源分配给该进程。

45. 操作系统有哪些?linux 和 Ubuntu 是什么关系?

答:此处列举一些微机操作系统:

  • CP/M:第一个微机操作系统。
  • MS-DOS:单用户单任务的操作系统。
  • Windows:多用户、多任务的操作系统。
  • Unix:分时计算机操作系统。
  • Linux:由 Unix 克隆的操作系统。
  • FreeBSD:由许多人参与开发和维护的一种先进的 BSD UNIX 操作系统。
  • Mac OS:运行于苹果 Macintosh 系列电脑上的操作系统。
  • Palm OS:是一种32位的嵌入式操作系统

Ubuntu 是 Linux 的一个版本,类似的还有 RedHat 、SuSE 、Debian 、Ubuntu 、红旗系统等。

46. 内存有哪些管理方法?linux用的是哪种?

答:内存管理是指软件运行时对计算机内存资源的分配和使用的技术,主要有段式存储管理、页式存储管理、段页式存储管理等。Linux 用的是页式存储管理方式。

操作系统复试问题笔记相关推荐

  1. 《自己动手写操作系统》读书笔记——初识保护模式

    <自己动手写操作系统>读书笔记--初识保护模式 http://www.cnblogs.com/pang123hui/archive/2010/11/27/2309930.html 书本第三 ...

  2. 数据库,计算机网络、操作系统刷题笔记20

    数据库,计算机网络.操作系统刷题笔记20 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其s ...

  3. 王道操作系统:完整笔记

    <王道操作系统>学习笔记和总目录导航 本篇文章是阅读和学习<王道操作系统>与<现代操作系统>后总结的理论知识笔记导航,专门用于遗忘后复习 下面的文章是我在学习了&l ...

  4. 操作系统原理学习笔记(二十一)-对换

    文章首发及后续更新:https://mwhls.top/1350.html 新的更新内容请到mwhls.top查看. 无图/无目录/格式错误/更多相关请到上方的文章首发页面查看. 操作系统原理学习笔记 ...

  5. 数据库、计算机网络,操作系统刷题笔记4

    数据库.计算机网络,操作系统刷题笔记4 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sq ...

  6. 数据库、计算机网络,操作系统刷题笔记5

    数据库.计算机网络,操作系统刷题笔记5 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sq ...

  7. 数据库、计算机网络,操作系统刷题笔记3

    数据库.计算机网络,操作系统刷题笔记3 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sq ...

  8. 数据库、计算机网络,操作系统刷题笔记8

    数据库.计算机网络,操作系统刷题笔记8 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤其sq ...

  9. 电子科技大学操作系统期末复习笔记(二):进程与并发控制

    目录 前言 进程管理 进程基本知识 程序的顺序执行 前趋图 程序的并发执行 并发程序 进程的定义和特征 进程的特征和状态 操作系统内核 定义 功能 原语 原子操作的实现 操作系统控制结构 进程控制块P ...

最新文章

  1. 关于 Caused by: java.lang.NoClassDefFoundError: com/alipay/api/AlipayApiException 解决办法
  2. Activity悬浮并可拖动(访悬浮歌词)
  3. php地址后面拼接页码,php分页类尾部页码导航代码
  4. 深度学习领域四个不可不知的重大突破
  5. OpenCV 自动调取摄像头并显示屏幕
  6. Android 动画(三)--属性动画
  7. ORA-01841: (完整) 年份值必须介于 -4713 和 +9999 之间, 且不为 0情况解决
  8. python中issubset是什么_python3解释器执行 {2, 3, 4}.issubset({2, 3, 4})的结果为__。
  9. 【2016年第4期】大数据应用系统的消息驱动架构
  10. 华为模拟器eNSP练习题 - VLAN综合实验
  11. 16年,平凡而又收获的一年,android底层开发实战
  12. 如何搭建内测托管平台?有可以直接用的内测托管平台吗?
  13. APP服务器需要什么样的配置
  14. 央视家庭厨房节目 <天天饮食> 43道家常菜
  15. 德国精品软件 小红伞杀毒软件 AntiVir
  16. 16春季计算机应用基础,西交16春季《计算机应用基础》在线作业及答案
  17. Git ---- 自建代码托管平台-GitLab
  18. 【工作】论文格式详细要求
  19. 人工智能安防初创公司澎思科技宣布完成千万级天使轮融资 洪泰基金领投
  20. ArcGIS案例学习笔记4_2_城乡规划容积率计算和建筑景观三维动画

热门文章

  1. 微信支付的软件架构,牛逼!
  2. 量子计算机新宇宙,脑洞大开!未来的量子计算机将运行在平行宇宙里
  3. 我想成为一个真的程序员
  4. 微信群裂变有哪些技巧?这款社群裂变工具不要说你还不知道!
  5. 微信小程序和ssm交互
  6. 详解1247:河中跳房子(二分经典例题)
  7. 雨林木风 Ghost XP SP3 装机版YN29.0
  8. [LeetCode] 447.回旋镖的数量(Easy)C语言题解
  9. 概率导论(一)——样本空间与概率
  10. 虚幻引擎_材质+后处理实现中国风水墨渲染