1.操作系统概述(待补充)

操作系统:

  • 控制和管理整个计算机系统的硬件和软件资源
特征:
  • 并发:(区别于并行,并发是指一段时间内有多个进程在运行,并行是指在某一个时间点上有多个进程在运行,一般呢,在CPU一个单核心内部是并发,在一个CPU的多个核心中进程的执行是并行的)
  • 共享:表面上看起来是多个程序『同时』访问硬件资源,而实际上是互斥共享的,即对于互斥资源来说,某个时间点只能有一个进程在访问资源,譬如内存资源的访问:对于整个内存资源来说是并行访问的,但是对于内存中某一个最小粒度的内存单元来说,是互斥访问的
  • 异步:(程序的执行不是一贯到底的,而是走走停停,向前推进的速度不可预知,但是只要程序运行的操作系统环境相同,OS需要保证程序运行的结果相同)
  • 虚拟:(利用多道程序设计技术,使每个用户(进程/程序)都觉得这个计算机好像单独为他服务)
资源的管理者:
  • 设备管理
  • 文件管理
  • 存储管理
分类:
  • 单批道处理系统
  • 多批道处理系统
  • 分时系统
  • 实时系统
  • 网络分布式、多机系统
操作系统的启动?

当你摁下电源的时候,会进行接下来的一系列操作:
BIOS(Basic Input/Output System)加电自检(检查各种硬件设备是否能正常工作)
设备检查正常后,由BIOS加载bootloader(用来加载OS)到内存中
由bootloader将OS从硬盘加载至内存,CPU的控制权交给OS
系统启动

什么是系统调用?

所谓系统调用,即是应用程序向操作系统发出的服务请求,具体就是应用程序向操作系统发出的一条操作指令(操作系统对底层硬件的访问进行了封装,并提供了对外访问的接口,那这些接口API就是系统调用API,通常在这些系统调用API之上还有一层更好层次的API,应用程序是通过访问这更高层次的API

什么是异常?

所谓异常,即是应用程序产生的意想不到的指令导致发生了错误,譬如非法指令或者其他坏的处理状态(如:内存出错)等,不得不由操作系统出面处理的场景

中断?

所谓中断,(中断来源于外设,有待商榷)即是需要时,CPU停止当前程序的执行转而去执行或处理新情况的过程

为什么应用程序被设计称为不能直接访问硬件系统的?

一是出于安全的考虑,对于计算机硬件来说,操作系统是可以被信任的,而第三方的应用程序是不被信任的,这些应用程序可能会去恶意破坏计算机的软硬件系统
二是出于应用程序开发方便的考虑,如果让应用程序直接访问硬件,会额外的增加应用程序的开发和维护成本,如果建立在操作系统之上,则会大大减少开发成本,因为操作系统已经对底层硬件做了很好的封装,应用程序只需调用系统调用,请求操作系统服务即可

操作系统如何处理中断和异常呢?

操作系统内部维护了一个处理中断和异常的表,操作系统为每个中断和异常都编了号,这张表的key是这些号码,Value是处理中断和异常的服务程序的起始地址,发生中断时,直接查表,然后由响应的中断处理程序进行处理即可

中断的处理过程详细如下(中断的过程对用户来说是透明的):
  • 设置中断标记:将内部或外部事件设置中断标记,并get到中断的ID
  • 保存当前的处理状态:程序的执行进度(下一条指令的地址),相关寄存器内容
  • 根据中断ID查表,找到中断处理程序,处理中断
  • 清除中断标记
  • 恢复之前保存好的处理现场,继续程序的执行
异常的处理过程如下:
  • get到异常ID
  • 保存当前处理状态:程序的执行进度(即下一条指令地址),相关寄存器内容
  • 异常处理:要么杀死异常的程序、要么重新执行刚才的指令
  • 恢复现场,并且继续中断钱程序的执行
操作系统软件结构?

内核:)系统调用:)高层API:)
系统调用是对内核服务的封装,高层API是对系统调用API的封装
通常,应用程序通过使用高层API来实现系统调用,但是也可以直接访问系统调用API,也可以直接访问内核,只不过后两种在应用程序中占很少一部分

什么是用户态和内核态?

用户态:应用程序掌握CPU执行权的状态,这种状态下,其执行权比较低,譬如不能直接访问IO,也不能执行一些特权指令,比如挂起一个进程什么的
内核态:操作系统内核掌握CPU执行权的状态,这种状态下,CPU可以执行任何指令,因为其具有所有执行权
应用程序通过系统调用可以实现CPU从用户态到内核态的转变
一个应用程序执行一个函数调用要比执行一次系统调用的性能要高:因为执行一个函数调用是在程序当前堆栈中完成的,而执行系统调用,需要切换到内核堆栈,并且还要完成特权级的转换,即要从用户态转换成内核态,切换堆栈和特权级是需要很大开销的,所以性能比起一般函数调用要略低的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值