博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我该如何理解原语???原语到底是什么???
阅读量:2806 次
发布时间:2019-05-13

本文共 1308 字,大约阅读时间需要 4 分钟。

原语

内核或微核提供核外调用的过程或函数称为原语(primitive)。


原语是一段用机器指令编写的完成特定功能的程序,在执行过程中不允许中断。

BaiDu 解析

Introduction

操作系统用语范畴。  primitive or atomic action 是由若干多机器指令构成的完成某种特定功能的一段程序,具有不可分割性.即原语的执行必须是连续的,在执行过程中不允许被中断   不同层次之间对话的语言称为原语,即不同层之间通过原语来实现信息交换

Type

请求(Req)型原语,用于高层向低层请求某种业务;

证实(Cfm)型原语,用于提供业务的层证实某个动作已经完成;

指示(Ind)型原语,用于提供业务的层向高层报告一个与特定业务相关的动作;

响应(Res)型原语,用于应答,表示来自高层的指示原语已收到。

Application

原语通常由若干条指令组成,用来实现某个特定的操作。

通过一段不可分割的或不可中断的程序实现其功能。

原语是的核心,它不是由进程而是由一组程序模块所组成,是操作系统的一个组成部分,它必须在管态(一种机器状态,管态下执行的程序可以执行特权和非特权两类指令,通常把它定义为操作系统的状态)下执行,并且常驻内存,而个别系统有一部分不在管态下运行。

原语和广义指令都可以被进程所调用,两者的差别在于原语有不可中断性,它是通过在执行过程中关闭中断实现的,且一般由系统进程调用。

许多广义指令的功能都可用目态(一种机器状态,通常把它作为用户程序执行时的状态)下运行的系统进程完成,而不一定要在管态下完成。

例如文件的建立、打开、关闭、删除等广义指令,都是借助中断进入管态程序,然后转交给相应的进程,最终由进程实现其功能。  

引进原语的主要目的是为了实现进程的通信和控制。

原子操作

在多进程(线程)的操作系统中不能被其它进程(线程)打断的操作就叫原子操作,文件的原子操作是指操作文件时的不能被打断的操作。


原子还有一层意思,当该次操作不能完成的时候,必须回到操作之前的状态,原子操作不可拆分。


所有原子操作是同步的,而且不可被外部中断(内中断可以,不过一般是致命错误处理)。


也就是说,原子操作是中断安全的。

线程安全

如果你的代码所在的进程中有多个在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。或者说:一个类或者程序所提供的接口对于线程来说是操作或者多个线程之间的切换不会导致该接口的执行结果存在,也就是说我们不用考虑同步的问题。

线程安全问题都是由及引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全。       

线程安全就是访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据

转载地址:http://cmfqd.baihongyu.com/

你可能感兴趣的文章
web应用优化 //todo
查看>>
codeforces #304 546 C. Soldier and Cards() (模拟)
查看>>
codeforces #304D 546D. Soldier and Number Game(数论+动态规划+前缀和)
查看>>
hdu 1532 Drainage Ditches(最大流)
查看>>
【图论算法及模版】割点,割边,强联通分量,点双联通分量,边双联通分量
查看>>
poj 2942 Knights of the Round Table(补图的求取+双连通分量+奇环的判断)
查看>>
poj 3352 Road Construction(点双连通分量缩点+缩点树变为双连通分量)
查看>>
codeforces #312 558A A. Lala Land and Apple Trees(暴力)
查看>>
codeforces #312C 558C C. Amr and Chemistry(位运算)
查看>>
poj 1703 Find them, Catch them(带权并查集)
查看>>
LeetCode 09. 回文数
查看>>
MySQL数据大表优化与解决方案-思维导图
查看>>
MySQL数据库解决方案
查看>>
我的生活-上海周边玩乐
查看>>
#MIA# Azure IaaS 系统学习(6)Identity(Azure AD)
查看>>
#MIA# Azure IaaS 系统学习(5)网络
查看>>
#MIA# Azure IaaS 系统学习(10)备份
查看>>
腾讯云直播开发日记 (一) 直播播放和观看
查看>>
React Native在windows环境设置
查看>>
React Native项目结构
查看>>