- 因为并没有时间进行系统的学习,所以会存在理解误差以及错误的地方,在这里记录是为了给自己一定的督促学习的作用,也希望大家发现我的错误多多指正
第一章 操作系统的概念
一、计算机系统
-
计算机(硬件)
-
五大组成部分
硬件组成
控制器
运算器
存储器
-
输入
获取数据
加工数据
-
输出
- 返回结果
由这五大组成部分组成的叫做裸机 ,这是计算机运行的基础
计算机的运行还需要操作系统实现功能,例如输入输出
-
-
系统(软件)
-
操作系统
管理硬件与软件 ,整个计算机为操作系统管理
指挥协调硬件间的配合
计算机系统中集中了资源管理功能和程序控制功能(宏观)
软件系统
计算机系统是一种可以按用户的要求接收和存储信息 、自行进行数据处理并输出结果信息的系统
-
负责硬件间的配合键盘的输入 可视化界面的反馈
-
系统软件
操作系统
编译软件
-
支撑软件
数据库
网络
多媒体
-
应用软件
office
PS
-
-
二、操作系统的定义
操作系统是计算机系统中的一个系统软件,它是这样的一些软件集合:他们能有效地组织和管理计算机系统中的硬件及软件资源,合理组织计算机工作流程,控制程序的执行,并向用户提供各种服务功能,使得用户能够灵活、方便、有效地使用计算机,并使整个计算机系统高效的运行。
操作系统分配CPU等硬件的工作细节,尽可能的保证资源高效利用
操作系统为用户提供操作界面
-
重点
资源管理,硬件和软件资源
组织计算机的工作流程以及程序的执行
向用户提供各种服务功能方便用户使用
三、操作系统的特征
-
并发性
单处理器
某一时刻内只进行一个进程
-
并行性
多处理器
某一时刻内同时进行多个进程
-
共同点
- 都是多个进程在进行
-
共享性
-
中央处理器(CPU)
- 进程的运行依赖处理器的计算
-
内存存储
- 进程及操作中所需的数据依赖内存存储
-
外存储器
- 硬盘、光盘、U盘等...
-
外部设备
- 打印机、扫描仪等...
-
互斥共享与同时共享
-
互斥共享
某一时刻内只进行一个任务
如 :打印机、扫描仪
-
同时共享
某一时刻内同时进行多个任务
如:硬盘、内存、音响
-
-
-
随机性
任务何时发生,任务时间长短无法预测
-
多处理器与多核
-
多核
- 一个处理器 多个核心 每个核心代表一个工作人员 如四核 则四个核心协同工作达成目标
-
多处理器
- 一个处理器代表一个发号施令的总部 ,多处理器则相当于多个总部分别进行不同的任务
-
四、研究操作系统的观点
-
软件的观点
-
大型软件系统,它是多种功能程序的集合
- 外在特性:外在表现,即它的命令定义集和它的界面,完全确定了操作系统的使用方式。
-
内在特性
- 具有一般软件的结构特点,而它因为是系统软件又具有特殊的结构
-
-
资源管理的观点
-
计算机系统资源 (硬件资源、软件资源)
- 对计算机系统资源进行管理
-
-
进程的观点
进程 :正在进行中的程序 ,未进行的程序不能称为进程
-
并发运行
- 操作系统对并发进程的管理 任务排队(多进程)
-
-
虚拟机的观点
操作系统为硬件提供了一定的自动化能力 ,虚拟机(操作系统)为用户自动完成了一些操作
例如打印功能,虚拟机自动为用户调动打印机进行打印
五、操作系统的功能
-
进程管理(处理器管理)
- 进程的控制、同步、通信、调度
-
存储管理
内存的分配与回收、存储保护、内存扩充(虚拟存储技术)
java与c++的最大区别在于C++自己管理内存 、java则有java虚拟机管理
-
文件管理
- 文件存储空间的管理、目录管理、文件系统的安全性
-
作业管理
- 进程的运行管理
-
设备管理
- 处理器和内存之外的设备、中断技术、通道技术、虚拟设备技术和缓存技术
分割线
二、操作系统的体系结构
-
Window操作系统的体系结构
-
最底层 硬件
- 输入输出设备 、buses接口、缓存控制...
-
硬件的抽象层
- 可以理解为硬件的驱动程序
-
内核层
内核 :操作系统中提供最基本操作的功能集合称为内核
为接口提供基本功能调用
-
系统服务的分发器
根据ntdll.dll这个组件来进行一些接口、功能的调用
系统线程是在系统服务分发器上运行的
-
内核模式
- 内核模式由操作系统进行、调用功能
-
用户模式
- 由用户调用的功能接口
services.msc为用户系统上所运行的所有服务
Ntdll.dll以上为用户模式 ,以下为内核模式
系统进程、系统线程(用户海)
-
-
Unix操作系统的体系结构
贝尔实验室开发的操作系统
基于C语言进行开发的操作系统
-
层次分布
硬件层(无法操作)
-
内核层
提供硬件、shell的接口
-
进程控制子系统 :对处理器和存储器管理
存储管理主要指内存管理
进程获取cpu执行权,内存分配一定的存储空间调用指令
-
文件控制子系统 : 设备和文件
- unix系统将外部的设备都当做文件进行管理
-
系统调用层
提供可以使用的命令用于调用内核层指令集
系统调用层向上为应用程序功能接口
向下则调用内核接口
供程序员设计、开发应用程序是调用。
包括:进程管理、文件管理、终端管理
-
应用层
- 开发工具、高级语言、网络通信处理程序等运行在shell之上
-
-
Liunx操作系统的体系结构
Linux层级分布于unix基本相同
内核层
shell层
-
文件系统层
文件管理
FAT格式(通常为系统盘)
EXT格式(Linux只支持EXT格式和FAT)
系统调用层
应用层
-
Andriod操作系统的体系结构
起初用到手机上、后来用到家具上(电视、冰箱等等)
Linux内核
C、C++本地环境和Android运行时环境
Andriod应用框架
Andriod应用程序
操作系统的发展
-
手工操作
- 早期计算机,用于数值计算
-
监控程序
- 早期的批处理
- 设定程序运行,通过监控程序按照顺序运行
-
多道批处理
- 通道概念:输入和输出时的过程被称为通道
- 输入时,数据将存入内存,CPU执行到输入指令时从内存获取
- CPU计算完成的结果将存入内存,再通过内存输出至外部设备
- 通道概念:输入和输出时的过程被称为通道
-
分时与实时系统
- 分时操作系统
- 时间片轮转
- 例如一台单芯片计算机挂载5个程序(同一时间只能运行一个程序),但要保证程序都能正常的持续运转将通过循环运行程序达到程序看起来都在同时运行的视觉效果(归功于CPU计算的足够快)
- 时间片轮转
- 实时操作系统
- 硬实时
- 对运行时间有严格要求,规定一秒运行完成的程序一定要一秒完成
- 软实时
- 对运行时间的限制并不严格限制,超时程序会出现错误但并不致命
- 硬实时
- 分时操作系统