操作系统面试题总结

1. 什么是操作系统

操作系统是运行在计算机上的软件程序,管理计算机硬件和软件资源,屏蔽了硬件层的复杂性。

2.系统调用

进程在运行时可以分为两个级别:用户态和内核态。正常的应用都运行在用户态,凡是跟内核态资源有关的操作,都必须通过系统调用,由操作系统代为完成。

3.进程和线程的区别

一个进程可以划分成多个线程,进程之间相互独立,线程之间可能会相互影响。线程不利于资源的管理和维护。
Java中,堆线程共享,栈线程私有。

4.进程的状态

创建、就绪、运行、阻塞、结束
就绪状态的线程被插队后,依然处于就绪状态。

5. 进程间通讯方式(IPC)

进程间通讯方式(IPC)
管道、有名管道、信号、消息队列、共享内存、信号量、套接字

6.线程间同步方式

互斥量、信号量、事件(wait、notify)

7.进程的调度算法

  1. 先到先服务(FCFS)调度算法
  2. 短作业优先(SJF)的调度算法
  3. 时间片轮转调度算法
  4. 多级反馈队列调度算法
  5. 优先级调度

8.死锁

  1. 互斥:资源必须处于非共享模式,即一次只有一个进程可以使用。如果另一进程申请该资源,那么必须等待直到该资源被释放为止。
  2. 占有并等待:一个进程至少应该占有一个资源,并等待另一资源,而该资源被其他进程所占有。
  3. 非抢占:资源不能被抢占。只能在持有资源的进程完成任务后,该资源才会被释放。
  4. 循环等待:有一组等待进程 {P0, P1,…, Pn}, P0 等待的资源被 P1 占有,P1 等待的资源被 P2 占有,…,Pn-1 等待的资源被 Pn 占有,Pn 等待的资源被 P0 占有。
    注意,只有四个条件同时成立时,死锁才会出现。

9.内存管理

内存管理主要负责内存的分配与回收,分为连续分配管理方式和非连续管理方式

  1. 块式管理:内存分块,每块一个进程。
  2. 页式管理:分页,页比块小。页无意义,页表。
    快表(cache)、多级页表: 解决虚拟地址到物理地址的转换问题。
  3. 段式管理:每个段定义一组逻辑信息,段表。

10.CPU寻址

使用虚拟寻址,将虚拟地址翻译成物理地址,cpu含有个内存处理单元(mmu),用来虚拟寻址
现在系统暴露出来的是虚拟地址空间,具有安全性

11.虚拟内存

虚拟内存为每个进程提供了一致的、私有的地址空间。
虚拟内存的实现建立在离散分配的内存管理方式的基础上。

12.页面置换算法

缺页中断 就是要访问的页不在主存,需要操作系统将其调入主存后再进行访问。 在这个时候,被内存映射的文件实际上成了一个分页交换文件。

OPT 页面置换算法(最佳页面置换算法):无法实现
FIFO(First In First Out) 页面置换算法(先进先出页面置换算法)
LRU (Least Recently Used)页面置换算法(最近最久未使用页面置换算法)
LFU (Least Frequently Used)页面置换算法(最少使用页面置换算法)

13.linux执行可执行文件的流程

当我们运行程序时,shell线程执行一系列指令,将目标文件中的代码和数据从磁盘复制到主存,通过调用一个专门的函数,即系统调用,来执行我们的请求。系统调用把控制权给操作系统,操作系统保存shell进程的上下文,创建一个新的进程及其上下文,然后把控制权给新进程,随后处理器开始执行程序中的机器语言指令。进程终止后,操作系统恢复shell进程的上下文,归还控制权。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值