每次准备面试都要去搜索各种面试经验贴,很麻烦,也不够系统,那就自己整理一套吧!
操作系统
概念
- 操作系统本质上是一个运行在计算机上的软件程序,用于管理计算机硬件和软件资源。
- 操作系统是管理计算机硬件与软件资源的程序,是计算机的基石。
- 操作系统存在屏蔽了硬件层的复杂性。
- 操作系统的内核(Kernel)是操作系统的核心部分,它负责系统的内存管理,硬件设备的管理,文件系统的管理以及应用程序的管理。 内核是连接应用程序和硬件的桥梁,决定着系统的性能和稳定性。
特征
- 并发:是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。操作系统通过引入进程和线程,使得程序能够并发运行。
- 共享:是指系统中的资源可以被多个并发进程共同使用。有两种共享方式:互斥共享和同时共享。互斥共享的资源称为临界资源,例如打印机等,在同一时刻只允许一个进程访问,需要用同步机制来实现互斥访问。
- 虚拟:虚拟技术把一个物理实体转换为多个逻辑实体。(1)主要有两种虚拟技术:时(时间)分复用技术和空(空间)分复用技术。(2)多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占用处理器,每次只执行一小个时间片并快速切换。(3)虚拟内存使用了空分复用技术,它将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。
- 异步:异步指进程不是一次性执行完毕,而是走走停停,以不可知的速度向前推进。
基本功能
- 进程管理
- 内存管理
- 文件管理
- 设备管理
系统调用
用户态(user mode):目态
核心态(kernel mode):管态
如果一个进程在用户态需要使用核心态的功能,就进行系统调用从而陷入内核,由操作系统代为完成,即是应用程序和系统之间的接口。
这些系统调用按功能大致可分为如下几类:
- 设备管理:完成设备的请求或释放,以及设备启动等功能。
- 文件管理:完成文件的读、写、创建及删除等功能。
- 进程控制:完成进程的创建、撤销、阻塞及唤醒等功能。
- 进程通信:完成进程之间的消息传递或信号传递等功能。
- 内存管理:完成内存的分配、回收以及获取作业占用内存区大小及地址等功能。
进程、线程和协程
进程:本质上是正在执行的一个程序,是资源分配的基本单位。
线程:是独立调度和分配的基本单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。
协程:又称微线程,纤程。英文名Coroutine。协程