【操作系统】总述

操作系统概念:
1. 总述
2. 进程管理
3. 内存管理
4. 文件管理
5. IO管理


数据结构是内功在所有计算机软件中都会涉及,组成原理研究一台计算机怎么组织工作,操作系统研究怎么分配资源,计算机网络研究计算机间的信息交换。

用于完成系统资源管理的系统软件

1. 操作系统总述

1.1 OS是什么

提供计算机与用户接口、实现系统资源管理功能的系统软件

1.1.1 OS发展历程

a. 未配置OS的计算机系统

人工操作方式

脱机输入/输出方式

b. 单道批处理系统(单用户单任务)

系统对作业的处理成批进行,内存中始终保持一道作业

缺点:

高速CPU等待低速IO设备

c. 多道批处理系统(多用户多任务)

多道批处理系统特点
  • 内存中存在多个作业

  • 并发:

    宏观上并行:同一时间段,多个作业在执行

    微观上串行:同一时刻只能一个进程占用CPU

  • 不提供人机交互

涉及问题
  • 处理机分配
  • 内存分配
  • 设备分配
  • 程序、数据的组织与存储

d. 分时系统(多用户多任务)

  • 时间片轮转

  • 支持多道批处理同时,支持人机交互

  • 各用户通过各自终端请求OS为其服务

e. 实时系统

收到什么请求处理什么

  • 硬实时系统:绝对实时
  • 软实时系统:相对实时,允许偶尔延迟

抢占式实时系统:优先级的进程高优先

f. 网络操作系统

由计算机网络实现网络中各类资源的共享与通信

服务于计算机网络,集中控制

g. 分布式计算机系统

系统中若干计算机完成同一任务

建立在网络系统上,分布控制

1.1.2 OS功能(做什么)

a. 提供计算机与用户之间的接口

命令接口
联机命令接口(命令行)

用户在控制台或终端输入命令,向系统请求服务

将控制权交给OS的命令解释程序,解释并执行当前指令

  • 用于分时或实时操作系统(用户可干预正在进行的进程)
脱机命令接口

用作业控制命令写成一份操作说明书,连同作业一起提交给系统

  • 适用于批处理命令接口
程序接口(GUI)

一组程序调用组成,用户在程序中使用系统调用请求OS为其服务

b. 系统资源的管理者

合理组织、调度计算机工作和资源分配

处理机管理(多道程序环境)
  • 进程控制
  • 进程同步
  • 进程通信
  • 进程调度
存储器管理
  • 内存分配
  • 内存保护
  • 地址映射
  • 内存扩充
文件管理
  • 文件存储空间管理
  • 目录管理
  • 文件读/写管理和保护
设备管理
  • 缓冲管理
  • 设备分配
  • 设备处理

c. 用作扩充机器

将覆盖了软件的机器称为扩充机器或虚拟机

实现了对系统硬件资源的抽象

1.1.3 特性

在这里插入图片描述

多道程序设计

工作过程:

  1. CPU启动通道后便去处理其他工作,通道进行IO操作

  2. 通道完成输入后,通过终中断机构向CPU发出请求,CPU暂停正在执行的操作,对中断进行处理

特点:

  • 间断性
  • 无序性
  • 共享性
  • 制约性

1.2 体系结构

在这里插入图片描述

1.2.1 基本概念

a. 内核

时钟管理
  • 提供标准系统时间
  • 分时系统中的时间片管理需要时钟管理为前提
中断机制

只有一小部分属于内核,PC与PSW由中断隐指令(硬件)完成

  • 保护和恢复中断现场(通用寄存器中的值)
  • 将控制权转移给相关的处理程序
原语

处于OS底层,最接近硬件

具有原子性

运行时间短,调用频繁

系统控制的数据结构及处理

用于登记各数据结构的状态信息

  • 作业控制块
  • 进程控制块
  • 设备控制块
  • 各种链路、队列、缓冲区、表

b. 程序分类

  • 应用程序:完成某种特定功能自编的程序
  • 内核程序:实现操作系统的程序,组成OS内核

c. 特权指令

用户不可调用,只允许内核程序调用

如:

  • IO指令
  • 置中断指令
  • 存取用于内存保护的指令
  • PSW置数指令

d. 两种状态

在PSW中,用1bit标记CPU状态

内核态(管态,核心态)

CPU此时运行的是内核程序

在此状态下可以调用特权指令,系统调用

用户态(目态)

CPU此时运行的是应用程序

不可执行特权指令

内核态->用户态

执行特权指令,修改PSW标志位为 用户态

用户态->内核态

中断是OS内核重新获得CPU控制权的唯一途径

如:访管指令产生访管中断

由中断引发,硬件自动完成变态过程

OS重新拿回控制权

e.系统调用

应用程序通过系统调用请求OS内核的服务,所以使用系统调用,CPU需要从用户态切换到内核态

系统中各类共享资源都由OS内核同一管理。凡是与共享资源有关的操作,都必须通过系统调用的方式向OS提出服务请求,由OS代为完成。

系统调用与库函数
普通程序 可直接进行系统调用,也可使用库函数,有的库函数会涉及系统调用,有的不涉及
编程语言 向上提供库函数。有时会将系统调用封装成库函数,隐藏系统调用的一些细节
操作系统 向上提供系统调用,使得上层程序能请求内核服务
系统调用过程

系统调用可以理解为一种中断服务程序

  1. 传递系统调用参数:编译产生若干参数和陷入指令

  2. 用户程序执行陷入指令(用户态)

    通过引发内中断,将CPU使用权主动归还给OS内核程序

  3. OS内核程序对系统调用请求作出相应处理(内核态)

  4. 处理完成后,OS将CPU使用权归还给当前用户程序

在这里插入图片描述

1.2.2 微内核

具有微内核结构的OS,实际上是将时钟管理、中断处理、原语作为微内核,加上上层的处理机管理、存储器管理、文件管理、设备管理形成大内核

非内核功能运行在用户态,内核运行在内核态

若采用微内核结构,CPU需要频繁地在内核态与用户态切换,造成较大开销

在这里插入图片描述

1.3 运行机制

1.3.1 启动过程

  1. 基本输入输出系统(BIOS)常驻内存ROM区

    固化在主板

  2. BIOS将Bootloader从硬盘加载到内存

  3. CPU运行引导加载程序(Bootloader)

    Bootloader完成一系列功能,将OS程序从磁盘加载到内存的RAM区

  4. 系统运行OS内核程序

  5. 在OS内核程序退出CPU前,执行特权指令,修改PSW中的CPU状态位进入用户态

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340