操作系统知识总结(一)
AI总结:本文是我备考软考系统架构设计师过程中整理的操作系统模块核心知识,涵盖概念、分类、进程管理、同步机制等内容,适合用于复习和笔记归档。
一、操作系统的基础概念
操作系统是什么?
操作系统(Operating System)是管理计算机硬件与软件资源的系统程序,是用户和硬件之间的桥梁。
操作系统的主要功能:
资源管理:CPU、内存、I/O、文件系统
任务调度:多任务并发控制
用户接口:命令行、图形界面
安全与保护:控制权限、隔离进程
系统抽象:为上层软件提供统一接口
二、操作系统的类型与特点
三、分布式操作系统的三大特性
透明性
用户感知不到资源实际所在节点,访问体验就像单一系统。可靠性
部分节点故障不会影响整体运行,系统具备容错和故障恢复能力。高性能
多个节点并行处理任务,提升系统整体吞吐能力。
四、嵌入式操作系统核心组件
HAL(Hardware Abstraction Layer)
对硬件接口进行统一抽象,使上层软件不用关心具体设备差异。BSP(Board Support Package)
针对具体硬件板级提供的驱动和启动代码,保证系统能运行在特定平台上。
五、进程管理与调度
什么是进程?
进程是程序的一次执行,是操作系统进行资源调度和管理的基本单位。
进程的三种基本状态
状态转换图简述:
运行 → 阻塞:等待 I/O 等
阻塞 → 就绪:事件完成
运行 → 就绪:时间片用尽或被抢占
就绪 → 运行:获得 CPU
常见调度算法
六、进程同步与互斥
互斥(Mutual Exclusion)
定义:
互斥是指同一时间只允许一个线程或进程访问临界资源或临界区,防止多个任务同时操作同一共享资源而造成数据冲突或错误。
举例说明:
假设有两个线程同时对一个银行账户余额进行修改,如果没有互斥机制:
线程 A 读取余额为 1000;
线程 B 也读取余额为 1000;
A 执行“减去 200”并写入结果 800;
B 执行“减去 300”也写入结果 700;
结果应该是 500,却因为并发覆盖变成了 700,这就是竞态条件。
使用互斥锁(Mutex)或信号量就可以让 A 和 B 分别排队访问,避免冲突。
同步(Synchronization)
定义:
同步是指多个进程或线程之间在执行上的协作与配合,确保它们按照某种预定顺序执行。
举例说明:
假设有一个“生产者 - 消费者”模型:
生产者线程负责往缓冲区写入数据;
消费者线程负责从缓冲区读取数据。
如果消费者在生产者还没放入任何数据前就去读取,就会出错。所以需要同步机制来让消费者等待生产者先完成操作。
同步机制可以通过条件变量(Condition Variable)、信号量(Semaphore)等实现。