操作系统笔记一(概述)

1定义:为了完成两个功能:管理支持应用软件,调用分配资源 层次在硬件之上,应用程序之下
2.kernel内核:是操作系统的重点,包括4部分:
进程管理:CPU
内存管理:内存
文件管理:文件
设备管理:中断处理和外设驱动
3.kernel特征:
并发:在一段时间内有多个程序运行
(并行:在一个时间点上有多个程序,需要多个CPU)
共享:分时,互斥共享 同时对一个资源只有一个程序可以访问
虚拟:操作系统面对的是硬件,将CPU虚拟化为进程,磁盘虚拟化为文件,内存虚拟化为空间,每个应用程序都觉得有一个计算机专门服务
虚拟技术分为 时分复用和空分复用
时分复用是并发执行 空分复用是地址空间的页并不需要都在物理内存中 执行页面置换算法即可 空间换时间
异步:一个CPU的情况下,只能有一个程序在跑,程序运行不是一贯到底,而是走走停停

操作系统的同步和异步问题具有一定的抽象性。
同步:
一台计算机工作时会产生若干个进程任务,当这些任务同步执行,在宏观上*就像这些任务在同时运行,在微观上是这些进程分别占用一个很短的时间段交替执行。当这些进程访问同一资源或者进行合作,必须按照某种顺序运行以确保该资源在某时刻只有一个进程所访问,只有当这些所有的进程都运行完,才返回给用户,可能造成“卡顿”现象。进程之间相互影响、相互制约。
异步:
当这些任务异步执行,它们之间没有制约关系,当一个进程正在运行时其他进程不需要等待,可以随时响应用户操作,随机运行。
比如手机音乐播放器播放音乐和手机电子书阅读小说这两个任务可以同时进行,不需要等其中一个关闭才能进行另一个任务。
参考文献
https://blog.csdn.net/weixin_39200445/article/details/81253024

4.中断 异常 以及系统调用
中断:外设发来请求,来自不同的硬件设备的计时器和网络中断
异常:来源于不良的应用程序 非法指令以及坏的处理状态
系统调用:应用程序主动向OS发出服务请求system call

1)用户态切换到内核态的3种方式
1、系统调用

这是用户进程主动要求切换到内核态的一种方式,用户进程通过系统调用申请操作系统提供的服务程序完成工作。而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的ine 80h中断。

2、异常

当CPU在执行运行在用户态的程序时,发现了某些事件不可知的异常,这是会触发由当前运行进程切换到处理此。异常的内核相关程序中,也就到了内核态,比如缺页异常。

3、外围设备的中断

当外围设备完成用户请求的操作之后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条将要执行的指令,转而去执行中断信号的处理程序,如果先执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了有用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。

2)切换操作

从出发方式看,可以在认为存在前述3种不同的类型,但是从最终实际完成由用户态到内核态的切换操作上来说,涉及的关键步骤是完全一样的,没有任何区别,都相当于执行了一个中断响应的过程,因为系统调用实际上最终是中断机制实现的,而异常和中断处理机制基本上是一样的,用户态切换到内核态的步骤主要包括:

1、从当前进程的描述符中提取其内核栈的ss0及esp0信息。

2、使用ss0和esp0指向的内核栈将当前进程的cs,eip,eflags,ss,esp信息保存起来,这个过程也完成了由用户栈找到内核栈的切换过程,同时保存了被暂停执行的程序的下一条指令。

3、将先前由中断向量检索得到的中断处理程序的cs,eip信息装入相应的寄存器,开始执行中断处理程序,这时就转到了内核态的程序执行了。

应用不允许直接访问外设 因为有些应用程序是不可信任的

差异:1 源头不同 网卡声卡显卡等产生事件为中断,APP意想不到的行为是异常,APP主动请求的OS服务为系统调用
2.处理时间:中断:异步 异常:同步 系统调用:同步或异步
异步的含义:就是当一个事件发生时,APP并不知道它什么时候发生 所以就是说这一异步同步是对应用程序而言的
那么(1)中断当然是异步,因为外设的请求APP不知道
(2)异常的话是因为APP出现了某指令才导致的 所以时间一致
(3)系统调用都是一个特定指令触发了事件,同步时间点
3.响应状态
中断:持续,对APP用户是透明的,感觉不到
异常:杀死或重新执行APP异常指令,也透明
系统调用:等待和持续

5.大内核和微内核
(1)大内核
大内核是将操作系统的功能作为一个紧密结合的整体放到内核
由于各模块共享信息 很高的性能
(2)微内核
这种结构下 操作系统被分割成小模块 只有微内核这一个模块运行在内核态 其他都在用户态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值