操作系统——基础

概述

操作系统在硬件和应用程序、用户之间,控制、管理和分配计算机的软件和硬件资源,调度计算机工作,为用户和应用程序使用计算机提供方便的接口,是最基本的系统软件。
在这里插入图片描述

操作系统对计算机资源的管理方式:
处理机管理
存储器管理
文件管理
设备管理
举例:使用微信视频,先找到微信的执行程序启动,这就是文件管理。微信启动后,产生一个进程,操作系统把进程放到CPU里执行,这就是存储器管理。用视频聊天需要调用摄像头,操作系统把摄像头设备给这个进程使用,就是设备管理。

操作系统为用户和应用程序提供的接口:
命令接口:联机接口:就是命令提示符。脱机接口:可以实现某个功能的一系列命令行指令存储在bat文件里,然后需要的时候直接执行这个文件。
程序接口:应用程序调用dll文件实现系统调用,比如调用user32.dll就可以创建一个窗口。
图形用户界面(GUI,Graphical User Interface)。

操作系统的特征:
并发:多个进程或线程在同一时间段内交替执行,看上去就像同时执行。单核CPU只有并发。
并行:多个进程或线程同时执行,多核CPU才有并行。
共享:允许多个进程或线程访问同一个资源,和并发互为依存条件。互斥性共享:当一个进程或线程访问该资源时,其他就不能访问。比如一个进程调用摄像头后,其他进程就无法使用摄像头。同时共享方式:多个进程或线程可以同时访问该资源。比如微信和QQ都可以同时访问磁盘,发送磁盘里的文件。
虚拟:逻辑上用户感受到的东西,比如单核CPU并发执行程序,物理上只有一个CPU,但用户感受到的却是多个CPU在执行任务。空分复用技术:使用虚拟存储器,这样即使多个进程占用的内存超过了物理内存,还是可以同时打开。时分复用技术:CPU在同一时间段内交替执行多个进程或线程,没有并发就不需要虚拟,同时没有虚拟,并发也无法实现。
异步:进程或线程的执行不会一步到底,而是走走停停。异步的前提是并发的存在,没有并发,就不需要异步。

操作系统的内核:一些影响比较大的指令需要特殊的权限,比如内存清零,这样的指令叫做特权指令,相对的就是非特权指令。可以执行特权指令的处理器状态称为核心态(管态),否则称为用户态(目态),处理器通过程序状态字寄存器PSW来切换不同的状态。能执行特权指令的程序称为核心程序,否则称为应用程序。
核心程序所在的部分被称为内核,时钟管理是实现计时功能,原语处于操作系统底层,是最接近硬件的部分,程序的运行具有原子性,不能被打断。包含进程管理等管理系统资源的程序的内核称为大内核,优点是不需要频繁在用户态和核心态之间切换,性能较高,缺点是内核代码复杂,难以维护。排除管理系统资源的程序的内核称为小内核,优点是内核代码结构清晰,容易维护,缺点是需要频繁在用户态和核心态之间切换,性能较低。
在这里插入图片描述

中断和异常

并发执行时,需要CPU不停地在各个进程间切换,当切换到另一个进程时,就需要CPU中断对上一个进程的执行。当CPU收到中断信号时,计算机从用户态转为核心态,执行中断功能,然后再转为用户态,把控制权交给下一个进程。中断是CPU进入核心态的唯一途径。
举例:进程1的时间片用完后,向CPU发出中断信号,CPU中断进程1,然后执行进程2。进程2需要暂停等待打印结果出来,于是进程2向CPU发出中断信号,CPU中断进程2,执行进程3。打印结果出来后,打印设备向CPU发出中断信号,CPU中断进程3,继续执行进程2。
中断分类:内中断也称异常,中断信号来自CPU内部,与当前执行的指令有关。陷阱一般是自己自设的,比如系统调用。故障一般是硬件方面的,比如缺页。终止一般是和软件相关的,比如除0。外中断就是狭义的中断,中断信号来自CPU外部,与当前执行的指令无关。I/O中断请求是I/O设备完成任务后,向CPU发出的中断请求。人工干预一般是用户发出的中断请求,比如强制停止某个程序。
在这里插入图片描述

外中断的执行过程:CPU每执行完一条指令,就会检测是否有外中断请求。在检测到外中断请求后,CPU先保存好当前进程的CPU环境,再转入核心态,根据中断信号执行相应的中断处理程序。最后,中断处理程序执行完毕,再回到原进程的CPU环境。

系统调用

当应用程序使用程序接口请求系统提供服务时,就是在进行系统调用。系统调用必须是在核心态下,保证安全性。比如,你和其他人一起使用打印机时,如果没有管理而是各自同时启动就容易混淆,但如果使用系统调用,你和其他人先向打印机系统发出请求,打印机再对请求进行管理,使各自的打印内容不会被混淆。
系统调用是操作系统向上提供的接口,一般应用程序都会通过高级语言的某个特殊函数来进行间接的系统调用,比如Java里的IO流。

系统调用的功能:

  • 设备管理:完成设备的请求/释放/启动功能
  • 文件管理:完成文件的创建/删除/移动等功能
  • 进程控制:完成进程的创建/撤销/阻塞//唤醒等功能
    进程通信:完成进程之间的消息传递/信号传递等功能 内存管理:完成内存的分配/回收等功能

系统调用的过程:
应用程序通过函数进行系统调用,传递参数。
在用户态下执行陷入指令:int x(int是interrupt的缩写,x是参数,决定执行什么样的操作),陷入指令是唯一一个不能再核心态下执行的指令,所以不能在核心态下。
CPU进入核心态,执行应用程序代码要求的操作。
返回应用程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值