操作系统
魏尔肖
如果生命没有起伏那么何来意义
展开
-
操作系统的调度算法
调度算法是指:根据系统的资源分配策略所规定的资源分配算法。对于不同的系统目标,通常采用不同的调度算法。操作系统中常见的进程调度算法:1、先来先服务(FCFS)调度算法:按照各个作业进入系统的自然顺序来调度作业,优点是简单公平,缺点是没有考虑到系统中各种资源的综合使用情况,对短作业来说等待时间过长。2、短作业(进程)优先调度算法(SJ/PF):对短作业(运行时间短)或短进程优先调度的转载 2017-02-18 23:21:37 · 1124 阅读 · 0 评论 -
c++调用规范
与函数堆栈密切相关的就是函数调用规范,即调用约定。函数调用规范决定了函数调用的实参压栈,退栈及堆栈释放的方式,以及函数名改编的方案,也即命名规范,windows下常用的调用约定有:_cdecl: 这是C/C++函数的默认调用规范,参数从右向左依次传递并压入堆栈,由调用函数负责堆栈的清退,因此这种方式有利于传递可变的参数给被调用函数(因为只有调用函数才知道才知道他给被调用函数传递多少个参数及他们的原创 2017-04-04 23:23:51 · 567 阅读 · 0 评论 -
线程同步的几种方式
多个线程同时访问共享数据可能会冲突。比如两个线程同时把某个全局变量增加1需要3步。1.从内存读取变量到寄存器 2.把寄存器中变量值加一 3.把结果返回给内存 不同线程的执行时间会造成结果的不同,这时候就需要线程同步:线程同步的四种方式:互斥量(mutex):引入互斥锁,得到锁的线程执行(读,修改,写)的操作,没有获得锁的线程只能等待,不能共享数据。(读,写,修改)的操作就有了原子性(要么原创 2017-07-29 14:24:49 · 6474 阅读 · 1 评论 -
原码,反码与补码,signed,unsigned char的存储与大小
原码:如果机器字长为N个bit,那么一个数的原码就是N位二进制数,最高位 是符号位,1代表负数,0代表正数。 反码: 正数的反码就是原码,负数的反码就是符号位不变,其他取反。补码:正数的补码与其原码相同;负数的补码是在其反码的末位加1。(计算机中的数都是以补码形式存储的) 补码的形式是为了进行正负数二进制的加减操作char为1个字节,8个bit位,看看内存中是怎么存储的原创 2017-04-01 00:18:57 · 1783 阅读 · 0 评论 -
进程间通信的几种方式
匿名管道 - 是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。命名管道 - 命名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。消息队列 - 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。信号量 - 是一个计数器,可以用原创 2017-07-29 00:00:26 · 929 阅读 · 2 评论 -
进程状态
进程线程有哪几种状态。之间转换的关系是什么?下面的状态在/fs/proc/array.c中定义 运行状态(running)表明进程在运行中或者运行的队列中 睡眠状态(sleeping)表明进程在等待事情的完成。 磁盘休眠状态(disk sleep),这个状态下的进程通常会等待IO的结束。 停止状态(stopped),进程收到信号停止 死亡状态(dead)是内核运行里的do_exit()原创 2017-07-28 23:41:50 · 1052 阅读 · 2 评论