操作系统大观

操作系统知识体系概述

1、操作系统管理计算机资源的五大核心任务:

(1)系统结构;

(2)进程管理;

(3)内存管理;

(4)文件系统;

(5)IO管理。


2、操作系统五大模块分别解决计算机运行中的什么问题?

操作系统(Operating System,OS)是管理计算机硬件资源和软件资源的系统软件,其核心作用是协调计算机各个部分的运行,提高资源利用率,并为用户程序提供统一的运行环境

操作系统主要围绕以下五个方面展开:


一、系统结构

1.1 系统结构解决的问题:操作系统内部如何组织和实现?

操作系统本身是一个复杂的软件系统,需要合理的结构设计来管理各种功能模块。

不同的系统结构决定了操作系统中各个功能模块之间的组织方式,例如:

  • 单体结构;
  • 分层结构;
  • 微内核结构;
  • 客户-服务器结构。

系统结构的作用:

合理划分操作系统功能,提高系统的可靠性、可维护性和扩展能力。


1.2 系统调用解决的问题:用户程序如何请求操作系统帮忙完成任务?

普通用户程序不能直接访问计算机硬件资源,例如磁盘、内存、设备等。

当程序需要完成某些操作时,需要通过系统调用向操作系统提出请求。

例如:

打开文件时,用户程序不能直接访问磁盘,需要:

复制代码
用户程序 → 系统调用 → 操作系统 → 磁盘设备

常见的系统调用包括:

  • open()
  • read()
  • write()
  • close()
  • fork()
  • exec()
  • wait()
  • exit()

系统调用的作用:

为用户程序提供访问操作系统功能的接口,使用户程序能够安全、高效地使用计算机资源。


1.3 微内核解决的问题:如何设计更加稳定、安全的操作系统?

传统操作系统通常将大量功能集中在内核中,导致内核复杂,维护困难。

微内核思想是:

将操作系统中最核心、最基本的功能保留在内核中,其他功能作为独立服务运行。

例如:

复制代码
应用程序

↓

系统服务

↓

微内核

↓

硬件

微内核的作用:

减少内核规模,提高系统安全性、可靠性和可扩展性。


1.4 虚拟机解决的问题:如何在一台计算机上运行多个独立系统?

虚拟机技术通过软件模拟出多个虚拟计算机,使一台物理计算机能够同时运行多个操作系统。

例如:

一台电脑同时运行:

  • Windows系统;
  • Linux系统。

虚拟机的作用:

提高硬件资源利用率,方便系统测试和环境隔离。


二、进程管理

2.1 进程管理解决的问题:多个程序如何同时运行?

计算机中通常存在多个程序同时运行,例如:

  • 浏览网页;
  • 播放音乐;
  • 下载文件。

但是CPU同一时间只能执行有限任务,因此需要进程管理协调多个程序的执行。

进程管理主要负责:

  • 创建和管理进程;
  • 分配CPU资源;
  • 控制进程执行顺序;
  • 解决多个进程之间的竞争问题。

2.2 进程解决的问题:如何描述一个正在运行的程序?

程序本身是静态的代码文件,当程序运行后,会形成一个动态执行过程,即进程。

例如:

复制代码
微信程序

↓

微信进程

进程的作用:

作为操作系统管理程序运行的基本单位,使操作系统能够记录程序运行状态,并分配系统资源。


2.3 线程解决的问题:一个程序内部如何同时执行多个任务?

一个进程内部可能包含多个执行任务。

例如微信:

  • 接收消息;
  • 下载文件;
  • 播放语音。

这些任务可以通过多个线程并行执行。

线程的作用:

作为CPU调度和执行的基本单位,提高程序执行效率。


2.4 进程调度解决的问题:CPU应该执行哪个程序?

多个进程同时处于运行需求状态,但CPU资源有限,因此操作系统需要决定:

"下一步运行哪个进程?"

常见调度算法:

  • FCFS进程调度(先来先服务);
  • 时间片轮转调度;
  • 优先级调度;
  • 多重队列调度;
  • 最短进程优先调度;
  • 两级调度。

进程调度的作用:

合理分配CPU资源,提高系统响应速度和资源利用率。


2.5 同步与互斥解决的问题:多个进程同时运行如何避免冲突?

多个进程可能同时访问共享资源,例如:

多个程序同时修改同一个数据。

如果没有控制,可能产生错误。

同步与互斥用于协调多个进程之间的执行关系。

主要机制:

  • 临界区;
  • 锁变量;
  • 原子操作;
  • 信号量;
  • 管程。

作用:

保证多个进程能够正确、有序地共享资源。


2.6 进程通信(IPC)解决的问题:多个进程之间如何交换信息?

不同进程之间通常相互独立,需要通过进程通信(IPC,Inter Process Communication)交换数据。

常见方式:

  • 消息通信;
  • 共享资源通信。

进程通信的作用:

实现不同进程之间的信息传递和协同工作。


2.7 死锁解决的问题:多个进程互相等待导致无法运行怎么办?

当多个进程竞争资源时,可能出现:

某个进程等待另一个进程释放资源,而另一个进程又等待它释放资源。

最终所有进程都无法继续执行。

死锁处理方法:

  • 死锁预防;
  • 死锁检测;
  • 死锁避免;
  • 银行家算法。

作用:

保证系统资源能够合理分配,避免系统停止运行。


三、内存管理

3.1 内存管理解决的问题:程序如何使用有限的内存空间?

计算机内存容量有限,而程序规模不断增大,因此操作系统需要合理管理内存资源。

内存管理负责:

  • 地址转换;
  • 内存分配;
  • 虚拟存储;
  • 页面置换。

作用:

提高内存利用率,使更多程序能够同时运行。


四、文件系统

4.1 文件系统解决的问题:数据如何长期保存和管理?

内存断电后数据会丢失,而文件系统负责管理磁盘中的长期存储数据。

文件系统主要负责:

  • 文件管理;
  • 目录管理;
  • 文件存储组织;
  • 文件访问控制。

作用:

方便用户保存、查找和管理数据。


五、输入输出(IO)管理

5.1 IO管理解决的问题:CPU如何高效管理外部设备?

计算机中存在大量外部设备:

  • 磁盘;
  • 键盘;
  • 打印机;
  • 终端设备。

这些设备速度和工作方式不同,需要操作系统进行统一管理。

IO管理负责:

  • 控制设备访问;
  • 管理设备驱动;
  • 提高设备利用率。

相关技术:

  • IO控制方式;
  • 设备驱动程序;
  • SPOOLing;
  • 磁盘调度算法。

作用:

实现CPU与外部设备之间高效、可靠的数据交换。


总结

操作系统本质上就是围绕五个核心问题展开:

模块 解决的问题
系统结构 操作系统自身如何组织和实现
进程管理 多个程序如何同时运行
内存管理 程序如何使用有限内存
文件系统 数据如何长期保存和管理
IO管理 CPU如何高效控制外部设备
相关推荐
WWJA王文举30 分钟前
FreeRTOS动态创建任务和静态创建任务详解:xTaskCreate与xTaskCreateStatic区别
操作系统·freertos·嵌入式开发
MSTcheng.7 小时前
【Linux】Linux学习第三弹——Linux基本指令2
linux·windows·学习·ubuntu·操作系统
噜~噜~噜~17 小时前
操作系统笔记-2.3.5.1.1生产者-消费者问题
笔记·操作系统
噜~噜~噜~1 天前
操作系统笔记-2.3.5.2 读者-写者问题
笔记·操作系统
sulikey4 天前
Linux Core Dump 完全指南:从原理到实战的崩溃调试手册。什么是core dump?程序报错core dumped怎么办?
linux·服务器·操作系统·调试·coredump
chen<>4 天前
malloc 和 free 背后发生了什么?
java·linux·服务器·操作系统
charlie1145141915 天前
Cinux · musl 静态移植:对齐 Linux ABI、铺初始栈,以及一个被 SMAP 拦下的潜伏 bug
linux·开发语言·c++·操作系统·开源项目
布莱克6056 天前
软中断和硬中断的区别
开发语言·操作系统
噜~噜~噜~7 天前
操作系统笔记-2.3.2.1 进程互斥的软件实现方法
笔记·操作系统