40.简述操作系统中调用过程?
讲过程之前,让我们先明白什么是调用?
但是讲调用之前又需要明白两个概念 核心态和用户态。
操作系统中的状态可以分为核心态(管态)和用户态(目态)。
程序有些是特权指令,特权指令是只能在核心态运行,不能够在用户态运行的指令。
再额外说一点:
其实微内核系统和宏内核系统就是核心态和用户态的划分不同。微内核只提供一些必要的系统服务,也就是处于核心态的系统服务少,只有一些必要的。宏内核把很多的系统服务都划分到了核心态,所以提供的服务比较多。
那划分核心态和用户态的意义是什么呢?
那么我们想一个问题,如果只有核心态没有用户态的情况下,会出现什么情况?
由于系统资源可能同时被多个应用程序访问,那么会出现文件、网络、各种硬件设备等资源竞争的情况,各个应用程序之间可能会产生冲突,对于恶意应用程序更可能导致系统奔溃。
所以对应用程序进行限制就出现了了用户态。
我们普通的应用程序基本都是处于用户态下运行。
那么操作系统调用过程是怎样的呢?
首先运行于用户态的应用程序发出系统调用请求,保护现场。一般都是给出一个中断指令(软中断),然后根据中断向量表查找系统调用表,最后在核心态执行系统调用处理程序(中断程序),最后返回应用程序,恢复现场。
40.简述操作系统中调用过程?相关推荐
- oracle中调用过程,oracle中如何调用存储过程
oracle中如何调用存储过程 发布时间:2020-03-08 03:28:03 来源:51CTO 阅读:511 作者:lxg290 一.通过pls块来调用存储过程: declare p_dzno v ...
- 只能在执行 Render() 的过程中调用 RegisterForEventValidation
当用GridView导出Execl的时候,会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误提示.有两种方法可以解决以上问题: 1.修改web ...
- 开机启动加载驱动过程中调用PostMessage函数出错
今天在WINCE5.0+S3C2440系统调试检测出租车是否载客的驱动的时候遇到这样的问题: 发现在开机启动加载驱动过程中调用PostMessage函数时会导致调用的线程崩溃,比如如果下面的线程在创建 ...
- 异常“只能在执行Render()的过程中调用RegisterForEventValidation”的解决办法(转)...
当出现下面的异常的时候: 只能在执行Render()的过程中调用RegisterForEventValidation 当出现的异常的提示: 异常详细信息: System.InvalidOperatio ...
- 简述python函数调用过程_python函数定义和调用过程详解
我们可以创建一个函数来列出费氏数列 >>> def fib(n): # write Fibonacci series up to n ... """Pr ...
- C++绝不在构造和析构过程中调用virtual函数
绝不在构造和析构过程中调用virtual函数 如果希望在继承体系中根据类型在构建对象时表现出不同行为,可以会想到在基类的构造函数中调用一个虚函数: class Transaction { //所有交易 ...
- 关于构造与析构过程中调用虚函数的问题
今天面试碰到一个构造函数与析构函数中调用需虚函数的问题,当时不太确定,回来敲了一下,发现确实表现的不一样,在网上一查发现另有玄机. 代码: # gcc version 4.8.2 (Ubuntu 4. ...
- Linux的open函数的调用过程,Linux 中open系统调用实现原理
用户空间的函数在内核里面的入口函数是sys_open 通过grep open /usr/include/asm/unistd_64.h查找到的 #define __NR_open2 __SYSCALL ...
- windows调用python_如何在Windows操作系统中从R调用Python?
我正在寻找一种在Windows操作系统上调用R中的python的方法.因为似乎没有可用的R包(至少没有最近更新的包),我正在寻找如何在R脚本中编写一组命令的线索,然后可以以批处理模式发送蟒蛇. 简而言 ...
最新文章
- vs2008 C++ 没有找到MSVCR90D.dll 问题
- 用MediaPlayer做个带进度条可后台的音乐播放器
- 九十五、二叉树的递归和非递归的遍历算法模板
- 在阿里云函数计算上部署.NET Core 3.1
- 代码整洁之道——9、格式化
- 360os比android,手机系统比拼360OS、Flyme究竟哪个好?
- Microsoft Edge逃离360之路
- C语言定义数组起始地址对齐方式(IAR C99 Kinetis K66)
- linux 下写不了文件,linux下用root为什么写不了windows下的文件
- 机器视觉LED灯珠检测案例
- 安装程序无法创建新的系统分区或者无法识别
- Altera FPGA 配置方式概述
- Bode Plots by Hand 徒手绘制波特图
- Java学习日记-Day01
- 微软笔记本怎么装linux,微软正在为XO笔记本装Win/Linux双系统
- excel中文本格式如何批量转化成数字
- XZ_iOS之实现textView占位文本和占位图片
- 2.excel导出-poi使用
- 由Java引起的指令重排序思考
- JSP、JS和HTML的区别