操作系统
文章平均质量分 87
Rock_N_Roll_
想成为一个摇滚文艺码农
展开
-
进程同步与互斥
1. 进程互斥定义:由于操作系统各进程需要使用共享资源,而这些资源需要排他性使用,各进程之间竞争使用这些资源,这些关系称为进程互斥。如:一个文件的读写问题。一个文件在被读的时候,不能同时进行写的操作。临界资源:系统中某些资源一次只允许一个进程使用,这样的资源称为临界资源或互斥资源或共享资源临界区:各个进程中对某个临界资源实施操作的程序片段。临界区使用原则:没有进程在临界区时,想进入临界区的进程可进原创 2017-04-09 14:21:21 · 8916 阅读 · 0 评论 -
CPU调度算法总结
批处理系统中采用的调度算法重要指标(吞吐量,周转时间,CPU利用率,公平平衡) - 非抢占式的先来先服务算法(FCFS):按照进程就绪的先后顺序使用CPU - 特点:公平,实现简单,但是长进程后面的短进程需要等待很长时间,不利于用户体验。 - 非抢占式的最短作业优先(SJF):具有最短完成时间的进程优先执行最短剩余时间优先(SRTN):SJF抢占式版本,即当一个新就绪的进程比当前运行原创 2017-04-07 16:58:26 · 25210 阅读 · 3 评论 -
深入理解Linux静态库与动态库
前言最近在写一个小型的http服务器,为了能够提供网页的动态内容,开始接触linux静态库和动态库的概念。之后又看了《深入理解计算机系统》的第七章–链接,在此对于linux静态库和动态库做一个总结。为什么需要库定义程序一般需要经过预处理,编译,汇编和链接将我们编写ASII文本程序变成可执行的目标文件(.out)。然而在实际开发中,有许多模块是反复复用的,如printf函数,scanf函数等,故所有的原创 2017-07-15 12:20:41 · 656 阅读 · 0 评论 -
深入理解计算机系统之数据的表示与存储
前言在编写程序的时候,不同数据类型进行转换和计算的时候总是可能出现各种各样奇怪的bug,所以深入的了解计算机系统中数据的表示与存储有利于我们编写高效与健壮的计算机程序,本文主要总结计算机系统中整数,浮点数的表示和存储。真值与补码的相互转换真值指的就是现实当中的正负数,而补码是计算机中表示真值的一种编码方式,也就是0/1编码的序列。补码与真值的关系如下: 其中n表示机器的字长,X是真值。求真值的补原创 2017-08-02 18:10:22 · 1955 阅读 · 0 评论 -
数据对齐那些事
前言目前的操作系统主要有32位和64位,也就是说机器字长是32位和64位。在计算硬件底层,CPU是按一个传送单位(32/64位)进行存取,而且是按字节进行编址。数据对齐指的是计算机系统对基本数据类型合法地址做出了一些限制,要求某种类型对象的地址必须是某个值K(2,4,8)的倍数。为什么要进行对数据对齐,我们可以看看下面的例子: 假设在一个32位的系统中,有int i; short k; doubl原创 2017-08-14 22:44:05 · 5415 阅读 · 0 评论