请注意,本文编写于 188 天前,最后修改于 182 天前,其中某些信息可能已经过时。
目录
简介
操作系统
定义和功能
操作系统结构
操作系统的分类
进程
进程的定义
进程的特点
进程的状态
进程状态的变化过程
进程拓展
线程
线程的定义
线程的特点
县城拓展
进程与线程的关系
简介
在计算机软考中,操作系统、进程和线程是常见的知识点。关于这几个知识点,考察的一般是概念的理解。
提示:进程状态的变化过程比较常考。
以下是这些知识点的详细讲解,帮助你更好地应对考试。
操作系统
定义和功能
- 定义:操作系统(Operating System,OS)是管理计算机硬件和软件资源的系统软件。
- 功能:
- 进程管理:管理进程的创建、调度、同步和终止。
- 内存管理:负责内存的分配和回收,内存保护和共享。
- 文件系统管理:提供文件的创建、删除、读写和权限管理。
- 设备管理:管理输入输出设备,提供设备驱动程序。
- 用户接口:提供用户与计算机交互的界面,如命令行接口(CLI)和图形用户界面(GUI)。
操作系统结构
- 单体结构(Monolithic OS):所有功能在一个内核空间中执行,如UNIX。
- 微内核结构(Microkernel OS):将操作系统功能分成小的模块,核心功能最小化,如MINIX。
- 层次结构:操作系统功能分层设计,每层只与相邻层交互。
操作系统的分类
- 批处理系统:一次处理大量任务,不与用户交互。
- 分时系统:多个用户共享系统资源,每个用户都有一个时间片。
- 实时系统:对时间敏感的任务提供及时响应。
- 嵌入式系统:通常是为特定功能或任务设计的计算机系统,嵌入到更大的设备中,如家电、汽车、工业设备和消费电子产品。
- 通用操作系统:设计用于多种用途和应用环境的操作系统。
当前流行的操作系统如 Windows
、macOS
、Linux
、Android
和iOS
,它们通常被分类为通用操作系统(General-Purpose Operating Systems
, GPOS
)。
进程
进程的定义
定义:进程是一个程序在执行中的实例,包括程序代码、数据、资源和执行状态。它是操作系统进行资源分配和管理的基本单位。
进程的特点
- 拥有独立的地址空间。
- 进程之间不能直接共享内存空间,需要通过操作系统提供的机制(如进程间通信IPC)进行数据交换。
- 每个进程都有自己的资源(如文件句柄、内存)。
进程的状态
一般情况下,认为进程的主要状态有三个:
- 就绪状态:进程已准备好执行,等待CPU分配。
- 运行状态:进程正在CPU上执行。
- 等待状态:进程因等待某事件(如I/O操作)而暂停执行。
但有些时候,便于理解进程状态的变化,可以认为另外两个状态:
- 新建状态:进程刚刚被创建,但尚未进入就绪队列。
- 终止状态:进程执行完毕或由于某种原因被操作系统终止,进程的资源被回收。
进程状态的变化过程
新建 -> 就绪
:进程创建后,分配必要的资源,进入就绪队列,等待调度。
就绪 -> 运行
:调度器选择一个就绪进程,将其分配到CPU上,进程进入运行状态。
运行 -> 等待
:运行中的进程需要等待某事件(如I/O操作),操作系统将其状态设置为等待,并将CPU分配给其他进程。
等待 -> 就绪
:等待的事件发生后,进程重新进入就绪状态,等待被调度。
运行 -> 就绪
:运行中的进程由于时间片用完或被操作系统中断,进入就绪状态,等待下一个调度周期。
运行 -> 终止
:进程完成执行或被终止,释放资源,进入终止状态。
进程拓展
进程控制块(PCB):
- 作用:存储进程的信息,用于管理和调度进程。
- 内容:进程ID、程序计数器、寄存器内容、内存分配信息、I/O状态信息等。
进程调度策略:先来先服务(FCFS)、最短作业优先(SJF)、优先级调度、时间片轮转(RR)。
进程同步与通信:
- 同步机制:信号量(Semaphore)、互斥锁(Mutex)。
- 通信机制:管道(Pipe)、消息队列、共享内存、套接字(Socket)。
线程
线程的定义
定义:线程是进程中的一个执行单元,一个进程可以包含多个线程。线程共享进程的资源,但拥有独立的执行路径。
线程的特点
- 并发执行:多个线程可以并发执行,提高程序效率。
- 资源共享:同一进程内的线程共享内存和资源,通信开销小。
- 开销较小:相比进程,创建和销毁线程的开销较小。
县城拓展
线程模型:
- 用户级线程(User-Level Thread):由用户程序库实现,系统内核不可见。
- 内核级线程(Kernel-Level Thread):由操作系统内核支持和管理。
线程调度策略:和进程调度类似,包括先来先服务(FCFS)、最短剩余时间优先(SRTF)、时间片轮转(RR)等。
线程同步工具:与进程同步相同,包括信号量、互斥锁、条件变量(Condition Variable)。
进程与线程的关系
- 一个进程可以包含一个或多个线程(单线程进程或多线程进程)。
- 线程是进程的一部分,线程之间的通信比进程之间更高效,因为它们共享同一个进程的地址空间和资源。
- 进程的创建和销毁相对昂贵,而线程的创建和销毁相对轻量。
本文作者:DingDangDog
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA
许可协议。转载请注明出处!