操作系统
风中舵手
个性、快乐、勇气
展开
-
线程安全和线程不安全理解
线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染。 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据造成所得到的数据是脏数据===========================================================转载 2016-03-30 17:20:35 · 245 阅读 · 0 评论 -
多核 CPU 和多个 CPU 有何区别?
作者:程训焘链接:http://www.zhihu.com/question/20998226/answer/18659825来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。架构可以千变万化,面向需求、综合考量是王道。来,简单举个例子。假设现在我们要设计一台计算机的处理器部分的架构。现在摆在我们面前的有两种选择,多个单核CPU和单个多核CPU。转载 2016-06-21 18:01:49 · 474 阅读 · 0 评论 -
什么是真正的实时操作系统
做嵌入式系统开发有一段时间了,做过用于手机平台的嵌入式Linux,也接触过用于交换机、媒体网关平台的VxWorks,实际应用后回过头来看理论,才发现自己理解的肤浅,也发现CSDN上好多同学们都对实时、嵌入式这些概念似懂非懂,毕竟如果不做类似的产品,平时接触的机会很少,即使做嵌入式产品开发,基本也是只管调用Platform team封装好的API。所以在此总结一下这些概念,加深自己的理解,同时也给新转载 2016-06-21 17:22:24 · 1863 阅读 · 0 评论 -
图解后缀表达式的计算过程
图解后缀表达式的计算过程 了解后缀表达式的工作原理在 2012年08月05日 那天写的 已经有 26539 次阅读了感谢 参考或原文为了解释后缀表达式的好处,我们先来看看,计算机如何应用后缀表达式计算出最终的结果20的。后缀表达式:9 3 1-3*+ 10 2/+规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进转载 2016-07-03 21:49:07 · 434 阅读 · 0 评论 -
缓存淘汰算法--LRU算法
博客分类: java基础 1. LRU1.1. 原理LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。1.2. 实现最常见的实现是使用一个链表保存缓存数据,详细算法实现如下:1. 新数据插入到链表头部;转载 2016-06-29 16:47:25 · 226 阅读 · 0 评论 -
操作系统:地址变换机构
4.3.2 地址变换机构 1. 基本的地址变换机构; 2. 具有快表的地址变换机构页表转载 2016-06-29 15:52:51 · 1669 阅读 · 0 评论 -
Linux进程间通信——使用信号
一、什么是信号用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过生成信号和捕获信号来实现的,运行中的进程捕获到这个信号然后作出一定的操作并最终被终止。信号是UNIX和Linux系统响应某些条件而产生的一个事件,接收到该信号的进程会相应地采取一些行动。通常信号是由一个错误产转载 2016-06-28 19:15:00 · 189 阅读 · 0 评论 -
进程间通信--管道
前面我们学习了一下进程,我们知道多,进程间的地址空间相对独立。进程与进程间不能像线程间通过全局变量通信。 如果想进程间通信,就需要其他机制。 常用的进程间通信方式有这几种A.传统的进程间通信方式无名管道(pipe)、有名管道(fifo)和信号(signal)B.System v IPC对象共享内存(share转载 2016-06-28 11:41:20 · 262 阅读 · 0 评论 -
管道和命名管道区别(转)
1、 管道概述及相关API应用1.1 管道相关的关键概念管道是Linux支持的最初Unix IPC形式之一,具有以下特点:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门转载 2016-06-28 10:40:17 · 2193 阅读 · 0 评论 -
常用调度算法简介
常用调度算法简介 2013-03-17 20:45:25分类: 系统运维一、关于调度进程调度用于多进程或者多线程并发访问资源。进程调度的需求出现在同时执行多个任务(multitasking)或者同时传输多数据流(mulplexing)。主要关心方面如下:吞吐量:在一个整体时间内尽可能多地执行完进程,或者尽可能多地发出请求并响应。延时:进程提交执行请求并转载 2016-06-24 20:49:24 · 262 阅读 · 0 评论 -
内存对齐详解
内存地址对齐,是一种在计算机内存中排列数据(表现为变量的地址)、访问数据(表现为CPU读取数据)的一种方式,包含了两种相互独立又相互关联的部分:基本数据对齐和结构体数据对齐 。 为什么需要内存对齐?对齐有什么好处?是我们程序员来手动做内存对齐呢?还是编译器在进行自动优化的时候完成这项工作? 在现代计算机体系中,每次读写内存中数据,都是按字(word,4个字节转载 2016-05-19 11:15:09 · 204 阅读 · 0 评论 -
大端与小端存储模式详解
端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian(这句话最为形象)。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big E转载 2016-05-04 15:53:05 · 297 阅读 · 0 评论 -
线程间的通信
线程间的通信1.线程之间的通信简介一般而言,在一个应用程序中(即进程),一个线程往往不是孤立存在的,常常需要和其它线程通信,以执行特定的任务。如主线程和次线程,次线程与次线程,工作线程和用户界面线程等。这样,线程与线程间必定有一个信息传递的渠道。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的。线程间的通信涉及到4个问题:(1) 线程间如何传递信息转载 2016-03-30 17:25:47 · 285 阅读 · 0 评论 -
分段和分页
一. 分页存储管理1.基本思想用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等。可将用户程序的任一页放在内存的任一块中,实现了离散分配。2. 分页存储管理的地址机构15 12 11 0 页号P转载 2016-03-30 17:23:16 · 260 阅读 · 0 评论 -
单缓冲与双缓冲的区别
OpenGL单缓冲与双缓冲的区别单缓冲,实际上就是将所有的绘图指令在窗口上执行,就是直接在窗口上绘图,这样的绘图效率是比较慢的,如果使用单缓冲,而电脑比较慢,你回到屏幕的闪烁。双缓冲,实际上的绘图指令是在一个缓冲区完成,这里的绘图非常的快,在绘图指令完成之后,再通过交换指令把完成的图形立即显示在屏幕上,这就避免了出现绘图的不完整,同时效率很高。一般用OpenGL绘图都是用双缓冲,单缓冲一般转载 2016-03-30 17:22:05 · 2390 阅读 · 0 评论 -
结构决定性能 机械硬盘的存储原理
结构决定性能 机械硬盘的存储原理 现在我们来看下机械硬盘的存储原理,只有理解了存储原理,我们才能够更好的理解机械硬盘的优势与劣势。硬盘构造 我们可以将机械硬盘的工作原理分为三个步骤,首先就是磁头到磁道,第二个则是等待要读取的数据随盘片旋转到磁头,最后则是开始读取数据。 知道了磁盘的工作原理后,我们来看一下,磁头寻道和等待读取的数据转到磁头这个过转载 2016-07-18 10:43:56 · 1610 阅读 · 0 评论