操作系统(一)--概述

1、

操作系统是紧贴硬件之上,所有其他软件之下(是其它软件的环境),用来管理硬件(使cpu、I/O设备和存储空间能够有效利用,管理分配软硬件资源,合理组织计算机工作流程(作业管理,进程管理)),实现用户接口(弥补硬件系统的类型和数量的差别)。将覆盖了软件的机器称为扩充机器或虚拟机,因此,OS是扩展机/虚拟机

2、管理硬件资源:处理器管理(cpu)、存储器管理(内外存)、I/O管理、文件管理。

管理内容:资源当前状态(数量的使用情况)、资源的分配、回收、访问操作,相应管理策略(包括用户权限)

3、用户接口

--用户使用OS的方式,也就是通过操作系统来管理查看硬件资源的方式有:命令行cmd(命令接口)、菜单式、命令脚本式,  这些方式都是要通过图形用户接口实现(图形、窗口等)

--程序员使用OS的方式,也就是程序员编写程序的时候用到文件资源时,用到的是:系统调用(程序接口,形式上类似于过程调用,在应用编程中使用)。

4、OS的基本特征并发性(并发应区别于并行,并发指的是同一时间段内发生,而并行指的是同一时刻发生。在多道程序处理时宏观上并发,微观上交替并行(单处理器情况),程序的静态实体是可执行的文件也就是要使用的资源,动态实体是进程或称为任务,并发指的是进程或线程的并发)

                            共享性(这里的共享指的是系统中的资源可供内存中的多个并发执行的进程(线程)共同使用。从这里就可以看出OS并发和共享的特征是相互依存的。因资源属性不同,对资源共享的方式也不同,分为互斥共享(音频设备,打印机)、同时访问(可重入代码,磁盘文件))

                          虚拟性(通过某种技术把一个物理实体变为若干个逻辑上的对应物,以便提高资源利用率,通俗的讲就比如一部手机上既运行着微信也运行着微博,一段时间内你在刷着微博,这时候微信收到一条消息,两个进程并发执行,它们都使用cpu,但物理上的cpu只有一个,两个都要用就只好虚拟成每个进程对应一个逻辑的cpu,但这的cpu是虚拟的,虚处理机,此外还有虚存储器(每个进程都占有的地址空间,指令+数据+堆栈),虚拟的显示设备(多窗口或虚拟终端),虚拟的打印设备(将临界资源变为同时访问资源))

                         异步性 (不确定性,进程的执行顺序和执行时间的不确定性)

5、关于操作系统的运行环境(也就是cpu的状态:内核态和用户态)

特权指令:为编制系统管理程序专门设置的,只有操作系统才能使用,如果用户误用这些特权指令,会被看作非法指令而引起故障中断。

  • 有关I/O的指令
  • 访问程序状态字寄存器的指令
  • 存取特殊寄存器(如用于内存保护的寄存器)的指令
  • 其他访问系统状态和直接访问系统资源的指令

以上这些管理硬件设备的指令只能操作系统通过系统调用来使用。

为了让cpu知道当前运行的指令是否应该被执行,或者让操作系统知道哪些指令是应该被执行的,我们把cpu分为两个状态,目态(又称用户态,普态;较低的特权级别,程序执行时不可使用特权指令,I/O指令,时钟设置,中断机制,系统管理等)和管态(又称内核态,核心态,系统态,特权态;执行系统管理程序,可以使用特权指令)

现在问题来了cpu是如何判断用户程序和系统程序从而确定当前所处的状态的呢

根据程序状态字PSW(如进位标志位(CF)、溢出标志位(OF)、结果正负标志位(SF)、结果是否为0标志位(ZF)、奇偶标志位(PF)这些都是反映指令执行结果的各种状态信息,称为状态标志,还有中断标志位(IF),cpu的工作状态位(核心态还是用户态)等这些存放控制信息称为控制状态)记录cpu的运行模式和状态信息,

还有一个问题是用户态和核心态这两个状态之间是如何转变的,

核心态到用户态直接修改PSW就可以,

用户态到核心态因为用户不能修改PSW,因此只能通过系统调用(本质上也是利用访管指令)访管指令 采用中断机制来实现

6、中断与异常

中断指的是程序执行过程中,当发生某个事件时,中止cpu上现行程序的运行,引出处理该事件的程序这样一个执行过程。

根据中断性质和激活手段分为:

强迫性中断事件(机器故障中断、程序性中断、外部中断、输入输出中断

自愿性中断事件(例如执行某段程序产生缺页时将会中断,这时要等待操作系统去外存找到该页调入内存)。

根据中断信号的来源分为:

外中断(中断):来自处理器和主存之外的中断,包括:电源故障中断、时钟中断、控制台中断、I/O中断。不同的中断有不同的中断优先级,处理高一级中断时,往往会屏蔽部分或全部低级中断。

内中断(异常):来自处理器和主存内部的中断,包括:通路效验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、访管中断、算术操作溢出等各种程序性中断。异常是不能被屏蔽的,一旦出现应立即响应并加以处理。

中断和异常的区别:

中断是由与现行指令无关的中断信号触发的(异步的),等现行指令执行完后再去响应它,中断的发生与cpu所处的状态(用户态还是核心态)无关。中断处理程序提供的服务不是为当前进程所需的,如时钟中断、硬盘读写服务请求中断。

异常是由处理器正在执行现行指令而引起的,一条指令执行期间允许响应异常,异常处理程序为当前进程服务。异常包括很多方面,有出错(fault),也有陷入(trap).

硬中断:中断和异常要通过硬件设施来产生中断请求。

软中断:不必由硬件发信号而引发,而是利用软件方式进行模拟,实现宏观上的异步执行效果。

              软中断是由内核或进程对某个进程发出的中断信号,可看作内核与进程或进程与进程直接用来模拟硬中断的一种信号通信方式。

中断处理程序的主要任务处理中断事件、恢复正常操作。不同的中断源对应不同的中断处理程序,所以快速找到中断处理程序的入口地址是一个关键的问题,中断处理程序主要做四项工作

  • 保护未被硬件保护的一些必要的处理状态。
  • 识别各个中断源,分析产生中断的原因。
  • 处理发生的中断事件。
  • 恢复正常操作。

                                                               

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值