Linux内核产生并发的原因


Posted in 面试题 onJuly 13, 2012
Linux内核产生并发的原因主要是中断和睡眠再调度。
一 :中断,由于中断执行是异步的,而且是在非抢占式内核中打断当前运行内核代码的唯一方法,所以中断是可以和其它内核代码并发执行的。因此如果中断操作和被中断的内核代码访问同样的内核数据,就会发生竞争。
二 :睡眠和再调度, 处于进程上下文(下面会进行讲述)的内核任务可以睡眠(睡眠意味放弃处理器),这时调度程序会调度其它程序去执行(首先执行调度任务队列中的内核任务,然后执行软中断等,最后从运行队列中选择一个高优先级的用户进程运行)。显然这里也会造成内核并发访问,当睡眠的内核任务和新投入运行的内核任务访问同一共享数据时,就发生了竞争。

Tags in this post...

面试题 相关文章推荐
PHP面试题-$message和$$message的区别
Dec 08 面试题
J2SDK1.5与J2SDK5.0有什么区别
Sep 19 面试题
我看到了用指针调用函数的不同语法形式
Jul 16 面试题
如何在存储过程中使用Loop
Jan 05 面试题
PPP协议组成及简述协议协商的基本过程
May 28 面试题
C#如何调用Word并打开一个Word文档
May 08 面试题
介绍一下linux的文件系统
Oct 06 面试题
软件测试常见笔试题
Feb 04 面试题
广州某公司软件工程师面试题
Dec 22 面试题
EntityManager都有哪些方法
Nov 01 面试题
Python中pass语句的作用是什么
Jun 01 面试题
十一个高级MySql面试题
Oct 06 面试题
Linux如何为某个操作添加别名
Mar 01 #面试题
Linux如何压缩可执行文件
Oct 21 #面试题
进程的查看和调度分别使用什么命令
Dec 14 #面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
Jan 03 #面试题
简述安装Slackware Linux系统的过程
Jan 12 #面试题
介绍一下Linux内核的排队自旋锁
Jan 04 #面试题
Windows和Linux动态库应用异同
Apr 17 #面试题
You might like
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
PHP+JS+rsa数据加密传输实现代码
2011/03/23 PHP
jQuery+php实现ajax文件即时上传的详解
2013/06/17 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
PHP封装的PDO数据库操作类实例
2017/06/21 PHP
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
详解Vue 非父子组件通信方法(非Vuex)
2017/05/24 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
javascript字体颜色控件的开发 JS实现字体控制
2017/11/27 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
微信小程序实现商城倒计时
2020/11/01 Javascript
node命令行工具之实现项目工程自动初始化的标准流程
2019/08/12 Javascript
微信小程序实现pdf、word等格式文件上传的方法
2019/09/10 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
python中redis的安装和使用
2016/12/04 Python
Python实现八皇后问题示例代码
2018/12/09 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
python中p-value的实现方式
2019/12/16 Python
Django 返回json数据的实现示例
2020/03/05 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
socket.io 和canvas 实现的共享画板功能
2019/05/22 HTML / CSS
运动会通讯稿100字
2014/01/31 职场文书
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android