操作系统基本概念
-
操作系统:
组织和管理软件、硬件资源以及计算机系统中的工作流程,并控制程序的执行,向用户提供接口。

操作系统的五大部分
- 进程管理:进程控制、进程同步、进程通信、进程调度
- 文件管理:文件存储空间管理、目录管理、文件的读写管理、存取控制
- 存储管理:存储分配与回收、存储保护、地址映射、贮存扩充
- 设备管理:对硬件设备管理,对输入输出设备的分配、启动、完成和回收
- 作业管理:任务、界面管理,人机交互、图形界面、语音控制、虚拟现实

只有有了操作系统,用户才有了可以交互的界面
操作系统的分类
| 操作系统 |
|---|
| 批处理操作系统 |
| 分时操作系统 |
| 实时操作系统 |
| 网络操作系统 |
| 分布式操作系统 |
| 微机操作系统 |
| 嵌入式操作系统 |
批处理操作系统
-
单道批:
一次一个作业入内存,作业由程序、数据、作业说明书组成 -
多道批:
一次多个作业入内存,特点:多道、宏观上并行 微观上串行
按照顺序依次处理指令
分时操作系统
把时间进行分割
- 采用时间片轮转的方式为多个用户提供服务,每个用户感觉独占系统
特点:
- 多路性、独立性、交互性和及时性

实时操作系统
实时控制系统和实时信息系统
- 实时控制系统
交互能力要求不高,可靠性要求高
设备两端精准度要求高、延迟性低
- 实时信息系统
网络操作系统
方便有效共享网络资源,提供服务软件和有关协议的集合
主要的网络操作系统由:Unix、Linux和Windows server系统
分布式操作系统
任意两台计算机可以通过通信交换信息
是网络操作系统系统的更高级形式,具有透明性、可靠性和高性能等特性
微机操作系统
Windows:
- Microsoft开发的图形用户界面、多任务、多线程操作系统
Linux:
- 免费使用和自由传播的类Unix操作系统,多用户、多任务、多现场和多CPU的操作系统
嵌入式操作系统
运行在智能芯片环境中
特点:
- 微型化、可定制、实时性、可靠性、易移植性
用例:微波炉、电视机、冰箱等,运行在智能芯片基础上的设备
进程管理
进程的三态模型
进程管理(处理机管理):
- 在计算机系统中资源分配和独立运行的基本单位
| 状态 | 说明 |
|---|---|
| 运行 | 进程在处理及上运行。 单处理系统,处于运行状态的进程只能是一个。 |
| 就绪 | 进程获得了除处理及意外的一切所需资源,一旦未得到处理机即可运行 |
| 等待 | 也叫等待或睡眠状态,一个进程正在等到某一事件的发生而暂停停止运行 |

信号量机制
信号量S
- 整型变量,根据控制对象进行复制
S>=0表示资源可用数
n:n个资源
m:m个进程
n-m = r范围;如果结果r<0,则表示有|r|个进程程序需要排队等待
死锁
多个进行在运行过程中因争夺资源而造成的一种僵局
- 当进程处于这种僵持状态时,若无外力作用,它们都将无法再向前推进
同步和互斥
进程通信:
- 各个进程交换信息的过程
分类:
- 同步(直接制约)、互斥(申请临界资源简介制约)

同步
当同时有多个进程需要执行任务,这就会产生执行任务时间不同步
- 先抵达处理器的进程任务经过等待其他线程任务来到处理器执行
- 这样就可以多个任务一同进入处理器
互斥
当同时有多个进程需要执行任务,这就会产生,进程之间没有进行同步操作
- 彼此进程之间不会相互等待
申请释放
P:申请一个资源
V:释放一个资源
S:信号数量(S并不是一个具体含义)

每次执行P或V操作都会进行对应的S-1和S+1操作;
- 只有符合对应判断标准才会阻塞进入进程队列
互斥模型
多进程共享一台打印机
P(S):使用打印机
V(S):执行后续代码
互斥信号量S的初始值为1
打印机一次只能执行一个进程
- P和V操作是配套的
流程:

- 进程A首先申请处理资源
- 若申请处理资源成功,则直接进入处理
- 申请处理资源不成功,将任务放入阻塞队列进行等待,跟随队列执行顺序进入处理
同步模型
单缓冲区生产者、消费者问题
💕👉博客专栏
- 21世纪新兴技术:区块链!从基础到智能合约全面了解区块链是什么!
- SpringCloud微服务-从Spring出发学习从0学习微服务!
- Golang专栏-包含基础、Gin、Goam等知识
- 云原生专栏-包含k8s、docker等知识
- 从0开始学习云计算-华为HCIP证书
- JUC专栏-带你快速领悟JUC的知识!
- JVM专栏-深入Java虚拟机,理解JVM的原理
- 基于Java研究 数据结构与算法-包含贪心算法、加权图、最短路径算法等知识
- Docker专栏-上手热门容器技术Docker
- SpringBoot专栏-学习SpringBoot快速开发后端
- 项目管理工具的学习-设计技术:Maven、Git、Gradle等相关管理工具
- JavaSE-全面了解Java基础
- JS专栏-使用JS作的一部分实例~
- 使用CSS所作的一部分案例