网站首页 > 技术文章 正文
两种指令
特权指令:不允许用户程序使用(只允许操作系统使用)如 IO 指令、中断指令
非特权指令:普通的运算指令
两种程序
内核程序:系统的管理者,可执行一切指令、运行在核心态
应用程序:普通用户程序只能执行非特权指令,运行在用户态
处理机状态
用户态(目态): CPU 只能执行非特权指令
核心态(又称管态、内核态):可以执行所有指令
用户态到核心态:通过中断(是硬件完成的)
核心态到用户态:特权指令 psw 的标志位,0用户态,1核心态
原语
处在操作系统的最底层,是最接近硬件的部分
这些程序的运行具有原子性,其操作只能一气呵成(即原语程序不可被切割)
这些程序的运行时间都较短,而且调用频繁
中断和异常
1.内中断(异常,信号来自内部):
- 自愿中断﹣﹣指令中断
- 强迫中断:硬件中断、软件中断(例如:0除以0)
2.外中断(中断,信号来自外部):
- 外设请求、人工干预(打印机等)
系统调用
系统给程序员(应用程序)提供的唯一接口,可获得 OS 的服务,在用户态发生,核心态处理
体系结构
大内核、微内核
信号量
信号量机制是一种有效实现进程同步和互斥的工具
信号量的物理意义
(1)信号量的值
- 大于0:表示当前资源可用数量
- 小于0:其绝对值表示等待使用该资源的进程个数
(2)信号量初值为非负的整数变量,代表资源数
(3)信号量值可变,但仅能由 P 、 V 操作来改变
P / V 操作原语
1. P 操作原语 P ( S )
(1) P 操作一次, S 值减1,即 S = S -1(消耗一个资源)(请求分配一资源)
(2)如果 S >=0,则该进程继续执行;如果 S <0表示无资源,则该进程的状态置为阻塞态,把相应的 PCB 连入该信号量队列的末尾,并放弃处理机,进行等待(直至另一个进程执行 V ( S )操作
2. V 操作原语(等待) V ( S )
(1) V 操作一次, S 值加1,即 S = S +1(释放一单位量资源)
(2)如果 S >0,表示有资源,则该进程继续执行;如果 S <=0,则释放信号量队列上的第一个 PCB 所对应的进程(阻塞态改为就绪态),执行 V 操作的进程继续执行
猜你喜欢
- 2024-10-29 RT-Thread快速入门-互斥量 互斥方案用什么指标
- 2024-10-29 Datenlord |内存顺序问题(二) dataloader 内存
- 2024-10-29 操作系统概论:第二章 进程管理 简述操作系统进程管理,并举例说明
- 2024-10-29 Java多线程操作系统(生产者、消费者问题)
- 2024-10-29 高可用架构-容错机制 容错技术可以提高系统的可靠性
- 2024-10-29 计算机操作系统笔记第二章进程管理中篇
- 2024-10-29 六大进程通信机制总结 进程通信有哪几种基本类型?
- 2024-10-29 Java系统过载保护机制之信号量的控制
- 2024-10-29 铂金04:通风报信-为何说信号量是线程间的同步良器
- 2024-10-29 记一次阿里面试题:都有哪些进程间通信方式?麻烦你不要再背了
你 发表评论:
欢迎- 最近发表
-
- 在 Spring Boot 项目中使用 activiti
- 开箱即用-activiti流程引擎(active 流程引擎)
- 在springBoot项目中整合使用activiti
- activiti中的网关是干什么的?(activiti包含网关)
- SpringBoot集成工作流Activiti(完整源码和配套文档)
- Activiti工作流介绍及使用(activiti工作流会签)
- SpringBoot集成工作流Activiti(实际项目演示)
- activiti工作流引擎(activiti工作流引擎怎么用)
- 工作流Activiti初体验及在数据库中生成的表
- Activiti工作流浅析(activiti6.0工作流引擎深度解析)
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)