本文档为面试精华版,如果是初学者,建议从专栏学习:操作系统专栏
1. 什么是操作系统?
我通过以下四点向您介绍⼀下什么是操作系统吧:
- 操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基⽯;
- 操作系统本质上是运⾏在计算机上的软件程序 ;
- 操作系统为⽤户提供⼀个与系统交互的操作界⾯ ;
- 操作系统分内核与外壳(我们可以把外壳理解成围绕着内核的应⽤程序,⽽内核就是能操作硬件
的程序)。
关于内核多插⼀嘴:内核负责管理系统的进程、内存、设备驱动程序、⽂件和⽹络系统等等,决定
着系统的性能和稳定性。是连接应⽤程序和硬件的桥梁。 内核就是操作系统背后⿊盒的核⼼。
2. 什么是用户态和系统态?什么是系统调用呢?
根据进程访问资源的特点,我们可以把进程在系统上的运⾏分为两个级别:
- ⽤户态(user mode) : ⽤户态运⾏的进程或可以直接读取⽤户程序的数据,能执行部分指令。
- 系统态(kernel mode):可以简单的理解系统态运⾏的进程或程序⼏乎可以访问计算机的任何资
源,能执行全部的指令,不受限制。
我们运行的程序基本都是运行在用户态,如果我们调用操作系统提供的系统态级别的子功能咋办呢?那就需要系统调用了!
也就是说在我们运行的用户程序中,凡是与系统态级别的资源有关的操作(如文件管理、 进程控制、内存管理等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。
这些系统调⽤按功能⼤致可分为如下⼏类:
- 设备管理。完成设备的请求或释放,以及设备启动等功能。
- ⽂件管理。完成⽂件的读、写、创建及删除等功能。
- 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
- 进程通信。完成进程之间的消息传递或信号传递等功能。
- 内存管理。完成内存的分配、回收以及获取作业占⽤内存区⼤⼩及地址等功能。
3. 操作系统的基本特征
- 并发:宏观上是一段时间内多个程序一起运行,而并行是同一时刻多个程序一起运行操作系统通过引入进程和线程,使得程序能够并发运行
- 共享:系统中的资源可以被多个并发进程共同使用。
- 虚拟:虚拟技术把一个物理实体转换为多个逻辑实体 ,主要有两种虚拟技术:时(时间)分复用技术和空(空间)分复用技术。多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占用处理器,每次只执行一小个时间片
并快速切换 - 异步:异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。
4. 中断分类
-
外中断 :由 CPU 执行指令以外的事件引起,如 I/O 完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。
-
异常 :由 CPU 执行指令的内部事件引起,如非法操作码、地址越界、算术溢出等。
-
陷入 :在用户程序中使用系统调用