1计算机系统概述
1.1操作系统的基本概念
1.1.1操作系统的概念:
计算机的最外层是使用计算机的人,最内层是硬件人与计算机硬件之间的接口是计算机软件(分为系统软件,支撑软件和应用软件),在计算机上配置的各种软件中,操作系统是最重要的:
控制和管理整个计算机系统的硬件和软件资源
为用户和其他软件提供服务(提供接口和环境的程序集合)
是计算机操作系统中的最基本的系统软件
1.1.2操作系统的特征:
四大基本特征:
并发:两个或多个事件在同一时间间隔发生
共享:资源可供内存中多个并发执行的进程共同使用
(1)互斥共享:某时间内只允许一个进程访问,该进程访问完了别人才能访问,例如打印机。
(2)同时访问:某时间内允许多个进程同时访问。例如磁盘
虚拟:通过某种技术手段把物理上的实体,变成多个逻辑上的对应物
异步:指各种事件发生的顺序是不确定的。
其中,操作系统的并发性和共享性的存在,决定了虚拟性和异步性的存在,这四个基本属性至关重要,是贯穿于之后的操作系统的各个部分
1.1.3操作系统的目标和功能
(一)作为系统资源的管理者
存储管理:方便用户使用内存,提高内存利用率,从逻辑上扩充内容。
功能:内存分配,地址映射,内存保护,内存扩充。
进程管理:对处理机的分配和运行实施有效的管理,在多道程序的环境下,处理机的分配和运行以进程为单位。
功能:进程控制,进程同步,进程通信,进程调度。
设备管理:完成用户程序请求的I/O操作,提高外部设备利用,尽可能的提高输入输出的速度,方便用户使用外部设备。
功能:设备分配,设备控制,设备无关性。
文件管理:大量的信息以文件的形式外存,对信息的管理也是对文件的管理。
功能:文件存储空间的管理,目录的管理,文件的读写管理。
(二)作为用户和硬件系统之间的接口
命令接口:包括交互式命令接口和批处理命令接口,是用户直接使用进行作业控制的方式
程序接口:是用户通过系统调用来间接请求操作系统为其提供服务,目前最流行的是图形用户界面(GUI)
(三)作为对计算机资源的扩充
没有任何软件支持的计算机称为裸机,裸机在最里层,其外面是操作系统,覆盖了软件的机器我们成为虚拟机或扩充机
1.2操作系统的发展历程
1.2.1手工操作阶段(此阶段误操作系统)
用户在计算机上的所有工作都需要人工干预,缺点:用户独占全机、CPU等待手工操作、利用不充分
1.2.2批处理阶段(操作系统开始出现)
(一)单道批处理系统:作业处理是成批进行,内存中始终保持一道作业
优点:引入脱机输入输出,无需人工干预,按顺序完成
缺点:因为只有一道作业,CPU需要等待相对低速的I/O设备,效率和吞吐量低
(二)多道批处理系统:与许多个程序同时进入内存并允许他们在CPU中交替进行,共享系统中的各种软硬件资源。
优点:资源利用率高、系统吞吐量大
缺点:用户响应时间长,不提供人机交互
1.2.3分时操作系统
处理机的运行时间分成很短的时间片,按时间片把处理机分给各个联机作业使用
优点:解决了人机交互问题
缺点:不能优先处理紧急任务
1.2.4实时操作系统
能在某个时间限制内完成某些紧急任务而不需要时间片排队的操作系统
优点:能够处理紧急任务
1.3操作系统运行环境
1.3.1两种指令
特权指令:不允许用户直接使用的指令
非特权指令:允许用户直接使用的指令
1.3.2中断异常
中断(外中断):是指来自CPU执行指令外部的事件,也通常用于信息输入/输出
异常(内中断):是指来自CPU执行指令内部的事件,比如程序的非法操作码等
2.进程与线程
2.1进程与线程的引入
2.1.1进程的概念和特征
(一)进程概念:是进程实体的运行过程,是系统运行资源分配和调度的一个基本单位。进程实体由程序段、相关数据和进程控制块(PCB)组成,实质上创建进程就是创建PCB。其他的定义有:
(1)进程是程序的一次执行过程
(2)进程的运行活动是建立在某个数据集合上的
(3)进程是在获得资源的基础上从事自己的运行活动
(二)进程的特征
动态性:进程是程序的一次执行,是动态的变化的,是进程的基本特征
并发性:多个进程实体同存在内存中,能在一段时间内同时运行
独立性:进程实体独立运行、获取资源、接受调度等
异步性:进程相互制约,前进情况不可知
2.1.2程序和进程的区别
(1) 程序是指令的有序集合,是静态的,进程是程序在处理机上的一次执行过程,是动态的。程序的存在时永久的,而进程是有生命周期的,它因创建而产生,因调度而运行,因撤销而消亡
(2)进程是程序的一次执行过程,程序是进程赖以存在的基础
(3) 进程具有并发性,而程序并发执行会失去可再现性
(4)进程是系统分配和调度的独立单位,进程由程序、数据集合和进程控制块组成
(5)系统进程的使用级别高于用户进程
2.1.3进程的状态和转换
(1)一个进程从运行状态变为就绪状态,一定会引起另一个进程从就绪变为运行
(2)一个进程从运行状态变为阻塞状态,一定会引起另一个进程从运行状态变为就绪状态;这种因果变迁绝对不可能发生,因为一个CPU不可能真正同时运行两个进程
(3)一个进程从阻塞状态变为就绪状态,不一定会引起另一个进程从就绪状态变为运行状态
(4)一个进程被唤醒意味着进程状态变为就绪状态
2.1.4进程的创建
申请空白PCB,为新进程分配其运行所需要的资源,初始化进程控制块(PCB),如果新进程就绪队列能够接纳新进程,便将新进程插入就绪队列。
另外,进程的操作几乎都是对进程PCB以及其数据资源进行操作,最后选择入队或者出队。
2.2线程
2.2.1线程的概念
线程是进程的一个实体,是被独立调度和分配的基本单位,同时也作为调度和分派的基本单位,轻装上阵。
2.2.2线程的性质
调度的基本单位:线程是调度和分派的基本单位、跨进程,会切换进程
并发性:线程的合作.能够并发
拥有资源:有TCB.但只是必不可少、保证独立运行的资源
独立性:同一进程的不同线程共享进程的内存地址空间和资源
系统开销:因为轻装.所以减少开销、提升速度
支持多处理机系统:对多线程进程,多个线程可以分配到多个处理机上
2.2.3线程的状态和线程控制块
线程运行的三个状态:和进程一样
线程控制块TCB:标识符、一组寄存器、运行状态、优先级、线程专有存储区、信号屏蔽、堆栈指针
多线程OS中的进程属性:进程是可拥有资源的基本单位、多个线程可并发执行、进程已不是可执行的实体
2.2.4线程的创建和终止
线程的创建:初始化线程、创建后返回线程标识符
2.3多线程问题
2.3.1信号量机制
信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。
2.3.2 PV操作
PV操作是一种实现进程互斥与同步的有效方法。PV操作与信号量的处理相关,P表示通过的意思,V表示释放的意思。
2.3.3临界区
临界区是线程中访问临界资源的一段需要互斥执行的代码。临界资源是指线程之间共享的资源,但不同的执行序列结果不确定的,这也叫做竞态条件
2.3.4线程同步的方式:
互斥量Synchronized/lock:采用互斥对象机制,只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以可以保证公共资源不会被多个线程同时访问。
信号量Semaphore:它允许同一时刻多个线程访问同一资源,但需要控制同一时刻访问此资源的最大线程数。
事件(信号):通过通知操作的方式来保存多线程同步,还可以方便的实现多线程优先级比较操作。