CS knowledge:Operating System
Contents
概述
基本特征
1. 并发
- 并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令.
- 并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。
- 操作系统通过引入进程和线程,使得程序能够并发运行。
2. 共享
- 共享是指系统中的资源可以被多个并发进程共同使用。
- 有两种共享方式:互斥共享和同时共享。
- 互斥共享的资源称为临界资源,例如打印机等,在同一时刻只允许一个进程访问,需要用同步机制来实现互斥访问。
进程管理
死锁
内存管理
设备管理
连接
常见面试题
请分别简单说一说进程和线程以及它们的区别。
- 进程(process) 和 线程(thread)
- 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
- 线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程。
- 一个进程可以有多个线程,多个线程也可以并发执行
- 参考材料:英文类比, 进程与线程的一个简单解释。
-
操作系统的设计,因此可以归结为三点:
(1)以多进程形式,允许多个任务同时运行; (2)以多线程形式,允许单个任务分成不同的部分运行; (3)提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。
多线程一般效率比单线程高。但是不是无止境的。
线程同步的方式有哪些?
- 互斥量:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限。因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。
- 信号量:它允许同一时刻多个线程访问同一资源,但是需要控制同一时刻访问此资源的最大线程数量。
- 事件(信号):通过通知操作的方式来保持多线程同步,还可以方便的实现多线程优先级的比较操作。
- 临界区是访问共享资源的代码段