操作系统相关基础知识

一、操作系统的概念

1.定义

  1.提供用户接口

  2.分配和调度硬件资源

2.功能

1).进程管理

  进程控制:创建,暂停,唤醒,撤销

  进程调度:调度策略,优先级

  进程通信:进程间通信

2).内存管理

  内存分配、内存共享、内存保护、虚拟内存

3).设备管理

  设备的分配和调度、设备的无关性、设备传输控制、设备驱动

4).文件管理

  存储空间管理、文件的操作、目录的操作、文件和目录的存取权限管理

补充:

  分时技术:主机把CPU轮流分配给每个终端固定的时间片,直到所有的作业都运行完

 

二、操作系统的逻辑结构

1.操作系统的逻辑结构

1).概念

  OS的设计和实现思路

2).种类

  整体式结构:以模块为基本单位构建

  层次式结构:所有的功能模块按照调度次序排成若干层,相邻层间只有单向依赖或者单向调用

  微内核结构(C/S):操作系统=微内核+核内服务器

    微内核:足够小,提供OS最基本的核心功能和服务

    核外服务器:完成OS的绝大部分服务功能,等待应用程序提出请求

2.CPU的态

1).概念

  支持操作系统的最基本的硬件结构:CPU,内存,中断,时钟

  CPU态(Mode):CPU的工作状态,对资源和指令使用权限的描述

2).态的分类

  核态:能够访问所有资源和执行所有指令,管理程序/OS内核

  用户态:仅能访问部分资源,其他资源受限,用户程序

  管态:介于核态和用户态之间

3).硬件和OS对CPU的观察

  硬件按照”态“来区分CPU的状态

  OS按照”进程“来区分CPU的状态

4).存储器的分类

  按照读写工作方式分为:RAM,ROM

  按照存储元的材料分为:半导体存储器(常做贮存),磁存储器(磁带,磁盘),光存储器(光盘)

  按照与CPU的联系分为:

    主存:直接与CPU交换信息

    辅存:不能直接和CPU交换信息

  CPU读取指令或数据时的访问顺序:先访问缓存,再访问内存,再访问辅存

 

3.中断机制

1).定义

  CPU对突发的外部事件的反应过程或机制

CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕之后回到原来工作的中断处(断点)继续原来的工作

2).目的:

实现并发活动、实现实时处理、故障自动处理

3).相关概念

  ①、中断源:引起系统中断的事件称为中断源

  ②、中断类型:

    强迫性中断和自愿中断:

      强迫性中断:程序没有预期:例如I/O,外部中断

      自愿中断:程序有预期的。例如执行访管指令

    外中断和内中断

      外中断:由CPU外部事件引起,例:I/O,外部事情

        不可屏蔽中断和可屏蔽中断

          不可屏蔽中断:中断的原因很紧要,CPU必须响应

          可屏蔽中断:终端原因不紧要,CPU可以不响应

      内中断:由CPU内部事情引起,例:访管中断,程序中断

  ③、断点:程序中断的地方,将要执行的下一指令的地址

  ④、现场:程序正确运行所依赖的信息集合(相关寄存器)

  ⑤、现场的两个处理过程

    现场的保护:进入中断服务之前,把现场数据保存在栈中

    现场的恢复:中断服务结束之后,从栈中取出现场数据

4).中断响应的过程

    Ⅰ.识别中断源

    Ⅱ.保护断点和现场

    Ⅲ.装入中断服务程序的入口地址

    Ⅳ.进入中断服务程序

    Ⅴ.恢复现场和断电

    Ⅶ.中断返回:IRET

5).中断响应的实质

  交换指令执行地址

  交换CPU的态

  工作

    现场的保护和恢复

    参数传递(通信)

三、操作系统的用户界面

1.操作系统的启动过程

1).BIOS和主引导记录MBR

系统BIOS:Basic I/O System ,基本的输入输出系统

功能:系统启动配置

           基本的设备I/O服务

          系统的加电自检和启动,初始化基本的硬件

2).操作系统的启动过程

(1).初始引导

目的:把OS核心装入内存并使之开始工作接管计算机系统

过程:加电、BIOS中的启动程序

(2).核心初始化

目的:OS内核初始化系统的核心数据

(3).系统初始化

目的:为用户使用系统做准备,试系统处于待命状态,GUI界面的生成

2.操作系统的生成

概念:满足特定硬件环境和用户需要,组装构建操作系统过程

步骤:根据硬件环境/用户要求配置功能模块和构造参数

           构建OS的镜像

前提:操作系统由可拆装模块构成

           有交互式配置工具

           有映像构建工具

linux系统的生成:

1.获取Linux内核的源代码

2.选择和启动内核配置程序

3.根据需要配置内核模块和参数

4.重新编译新的内核

5.编译和安装模块

6.启动新内核

3.用户界面

概念:OS提供给用户控制计算机的机制,又称用户接口

图形用户接口:窗口,图标,菜单等

键盘命令:在控制台环境下接收键盘输入的命令

                 类型:普通命令、批处理程序(.bat文件)、shell脚本

Shell脚本编程:

shell是操作系统与用户交互的界面

shell表现为通过控制台执行用户命令的方式

shell本身不执行命令,仅仅是组织和管理命令

概念:脚本通过类似程序的方式执行具有一定逻辑顺序的命令序列完成较复杂的功能和人机交互

脚本程序保存在文本文件

脚本程序是Shell命令语句的集合

4.系统调用

概念:操作系统内核为应用程序提供的服务/函数

特点:

一般涉及核心资源或者硬件的操作

运行于核态

每个系统调用具有唯一的编号:ID

调用过程中会产生中断,自愿中断

隐式系统调用:例如C中的printf(),exit()

                          特点:

                         类似于API函数

                          在高级语言中使用

                          包含有”INT 80h“ 中断指令,执行相应的系统调用

四、进程管理

1.进程概念

1)进程的基本概念:描述和管理程序的“运行过程”

定义:进程是程序在某个数据集合上的一次运行

数据集合:软/硬件环境,多个进程共存/共享

特征:

动态性:进程是程序的一次执行过程,动态产生/消亡

并发性:进程同其他进程一起向前推进

异步性:进程按照各自速度向前推进

独立性:进程是系统分配资源和调度CPU的单位

进程与程序的区别:

动态和静态:进程是动态的,程序是静态的

                      进程是程序的一次执行,程序是一组指令的有序集合

暂存和长存:进程是暂存的:在内存中驻留

                     程序是长存的:在介质上长期保存

程序和进程的对应:一个程序有多个进程

进程的类型:

按照使用资源的权限:系统进程:指系统内核相关的进程

                                    用户进程:运行于用户态的进程

按照对CPU的依赖性:偏CPU进程:计算型进程

                                     偏I/O进程:侧重于I/O的进程

2)进程的五种状态

准备状态、就绪状态、运行状态、阻塞状态、死亡状态

五种状态之间的转换

3)进程的描述

进程控制块(PCB):描述进程状态、资源、和与相关进程关系的数据结构,是进程的标志,创建进程时创建PCB,进程撤销后PCB同时撤销

进程=程序+PCB

进程的上下文(Context):进程运行环境,CPU环境

进程切换过程:

换入进程的上下文进入CPU(从栈上来)

换出进程的上下文离开CPU(到栈上去)

 

2.进程控制

概念:在进程生存全期间,对其全部行为的控制

创建进程、阻塞进程、撤销进程、唤醒进程

①.创建进程:创建一个具有指定标识(ID)的进程

参数:进程标识,优先级,进程起始地址,CPU初始状态,资源清单等

过程:

创建一个空白PCB

获得并赋予进程标识符ID

为进程分配空间

初始化PCB

插入相应的进程队列(新进程插入就绪队列)

②.撤销进程:撤销一个指定的进程,收回进程所占有的资源,撤销该进程的PCB

时机/事件:正常结束,异常结束

撤销的实现:

在PCB队列中检索出该PCB

获取该进程的状态

若该进程正在运行状态,立即终止该进程(递归,检查是否有子进程,先撤销子进程

释放进程占有的资源

将进程从PCB队列中移除

③.阻塞进程:停止进程的执行,变为阻塞

时机:

请求系统服务

启动某种操作

新数据尚未到达

无新工作可以做

参数:

阻塞原因

不同原因构建有不同的阻塞队列

过程:

停止运行

将PCB”运行态“改为“阻塞态

插入相应原因的阻塞队列

转调度程序

④.唤醒进程:唤醒处于阻塞队列中的某个进程

时机:

系统服务由不满足到满足

I/O完成

新数据到达

进程提出新请求(服务)

参数:被唤醒进程的标识

进程控制原语:创建原语,撤销原语,阻塞原语,唤醒原语都具有原子性,操作不可分割

windows中的进程控制:

创建进程:启动应用程序底层调用了CreateProcess()创建进程

创建进程内核对象,创建虚拟地址空间

装载EXE和/或DLL的代码和数据到地址空间中

创建主线程和线程内核对象

启动主线程,进入主函数(main)

结束进程

ExitProcess()正常结束进程

TerminateProcess()暴力结束进程

 



版权声明:本文为qq_41841468原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。