操作系统
文章平均质量分 58
smilesundream
这个作者很懒,什么都没留下…
展开
-
进程与线程
简而言之,一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻原创 2017-03-30 12:46:08 · 300 阅读 · 0 评论 -
静态重定位与动态重定位
地址重定位就是操作系统将逻辑地址转变为物理地址的过程。。。也就是对目标程序中的指令和数据进行修改的过程将逻辑地址空间重定位到物理地址空间的时机有三种: 1、程序编译连接时。 2、程序装入内存时。 3、程序执行时。以下内容转自:http://bbs.pediy.com/showthread.PHP?t=76876 在这之前我一直对地址重定位的细节不是很了解。以转载 2017-04-24 20:58:07 · 5315 阅读 · 3 评论 -
管道
关闭管道只是将两个文件描述符关闭即可,可以使用普通的close函数逐个关闭。无名管道读写 管道用于不同进程间通信。通常先创建一个管道,再通过fork函数创建一个子进程,该子进程会继承父进程创建的管道。注意事项:必须在系统调用fork()前调用pipe(),否则子进程将不会继承文件描述符。否则,会创建两个管道,因为父子进程共享同一段代码段,都会各自调用pipe(),即转载 2017-04-24 22:16:07 · 447 阅读 · 0 评论 -
子进程与子线程的区别
1、相同点:(a)二者都具有ID,一组寄存器,状态,优先级以及所要遵循的调度策略。(b) 每个进程都有一个进程控制块,线程也拥有一个线程控制块。(c) 线程和子进程共享父进程中的资源;线程和子进程独立于它们的父进程,竞争使用处理器资源;线程和子进程的创建者可以在线程和子进程上实行某些控制,比如,创建者可以取消、挂起、继续和修改线程和子进程的优先级;线程和子进程可以改变其属性并创建新的资转载 2017-04-24 22:20:54 · 1329 阅读 · 0 评论 -
进程死锁算法——Peterson与Dekker
进来Bear正在学习巩固并行的基础知识,所以写下这篇基础的有关并行算法的文章。在讲述两个算法之前,需要明确一些概念性的问题,Race Condition(竞争条件),Situations like this, where two or more processes are reading or writing some shared data and the fin转载 2017-04-26 17:29:02 · 1210 阅读 · 1 评论 -
存储管理
第三章 存储管理 存储管理是操作系统的重要组成部分,它负责计算机系统内存空间的管理。其目的是充分利用内存空间,为多道程序并发执行提供存储基础,并尽可能地方便用户使用。3.1 存储管理的目的 采用多道程序设计技术,就要在内存中同时存放多道程序,这就要求存储管理解决以下四个重要问题,以达到尽可能方便用户使用和充分利用内存以提高内存利用率的目的。 一、内存空间的分配转载 2017-08-08 16:51:58 · 816 阅读 · 0 评论 -
磁盘调度算法
常见的磁盘调度算法有以下几种:1.FIFO:先来先服务算法;2.SSTF: 最短寻道时间算法;3.SCAN:电梯调度算法;(这样命名很形象)4.CSCAN: 循环扫描算法5.FSCAN:分步电梯调度算法(分两个队列)下面详细说一下各个算法的主要思想:首先是FIFO算法,也就是先来先服务算法。这种算法的思想比较容易理解。假设当前转载 2017-08-12 19:47:06 · 416 阅读 · 0 评论 -
C++数据存储区
在C/C++中,内存中数据存储分成4个区,分别是堆、栈、全局/静态存储区和常量存储区。 栈(stack),就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆(heap),一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。 全局/静态存储区,全局变量和静态变量被分配到同一块内存中,转载 2017-05-30 11:54:59 · 1232 阅读 · 0 评论 -
文件系统
转载:http://www.cnblogs.com/ching2009/p/5120275.htmlLinux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/),节点为目录,而末端的叶子为包含数据的文件。当我们给出一个文件的完整路径时,我们从根目录出发,经过沿途各个目录,最终到达文件。我们可以对文件进行许多操作,比如打开和转载 2017-09-22 20:36:07 · 295 阅读 · 0 评论 -
存储管理之页式、段式、段页式存储 以及 优缺点
首先看一下“基本的存储分配方式”种类: 1. 离散分配方式的出现 由于连续分配方式会形成许多内存碎片,虽可通过“紧凑”功能将碎片合并,但会付出很大开销。于是出现离散分配方式:将一个进程直接分散地装入到许多不相邻的内存分区中。 下面主要介绍“离散分配”三种方式的基本原理以及步骤:2.转载 2017-04-12 23:21:21 · 26860 阅读 · 1 评论 -
共享内存
转载自:Linux共享内存实现机制的详解内存共享: 两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。效率: 采用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要任何数原创 2017-09-23 23:42:08 · 209 阅读 · 0 评论 -
自旋锁
POSIX threads(简称Pthreads)是在多核平台上进行并行编程的一套常用的API。线程同步(Thread Synchronization)是并行编程中非常重要的通讯手段,其中最典型的应用就是用Pthreads提供的锁机制(lock)来对多个线程之间共 享的临界区(Critical Section)进行保护(另一种常用的同步机制是barrier)。Pthreads提供了多种锁机原创 2017-05-24 17:38:14 · 181 阅读 · 0 评论 -
大小端存储
http://blog.csdn.net/aaronin/article/details/7700771开头讲个有关大端小端的故事: 端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小转载 2017-05-03 10:23:06 · 282 阅读 · 0 评论 -
周转时间
周转时间和平均带权时间等设一个系统中有5个进程,它们的到达时间和服务时间如下,A的到达时间为0,服务时间为3;B的到达时间为2,服务时间为6;C的到达时间为4,服务时间为4;D的到达时间为6,服务时间为5;E的 到达时间为8,服务时间为2,忽略1/0以及其他开销时间,若分别按先来先服务(fFCFS)进行CPU调度,其平均周转时间为? 答:周转时间=作业完成时间减原创 2017-04-09 15:06:57 · 1198 阅读 · 0 评论 -
进程间的通信方式
原创 2017-04-13 11:28:32 · 152 阅读 · 0 评论 -
文件组织方式
一、文件的基本概念( 识记 ) 对数据结构来说, 文件 是性质相同的 记录 的集合 (这不同于我们说的操作系统中的文件概念) 。 与文件有关的概念还有: 记录 是文件中存取的 基本单位 , 数据项 是文件可使用的 最小单位 ,数据项有时称 字段 或者 属性 。主关键字项 (唯一标识一个记录的字段)、 次关键字项 、 主关键字 、 次关键字 。 单关键字文件 、 多关键字文件 等。原创 2017-04-18 23:17:07 · 5849 阅读 · 0 评论 -
中断调用与子程序调用
1、两过程定义与作用 子程序是微机基本程序结构中的1种,基本程序结构包括顺序(简单)、分支(判断)、循环、子程序和查表等5种。 子程序是一组可以公用的指令序列,只要给出子程序的入口地址就能从主程序转入子程序。子程序在功能上具有相对的独立性,在执行主程序的过程中往往被多次调用,甚至被不同的程序所调用。一般微机首先执行主程序,碰到调用指令就转去执行子程序,子程序执行完后,返回指令就返回主程原创 2017-04-19 09:46:11 · 8053 阅读 · 0 评论 -
fork()函数
一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新原创 2017-04-19 10:49:36 · 269 阅读 · 0 评论 -
需求矩阵
链接:https://www.nowcoder.com/questionTerminal/1ae37daa6de74caca937c5d497ce2e49来源:牛客网1)可利用资源向量Available 是个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目。如果Available[j]=K,则表示系统中现有Rj类资源K个。 2)最大需求矩阵Max 这是一个n×m原创 2017-04-19 11:03:25 · 10403 阅读 · 0 评论 -
SPOOLING假脱机技术
SPOOLING技术(Simultaneous Peripheral Operating On Line)同时联机外围操作技术,它是关于慢速字符设备如何与计算机主机进行数据交换的一种技术,通常又称假脱机技术。在多道程序环境下,利用多道程序中的一道或者两道程序来模拟脱机输入/输出中的外围控制机的功能,以达到“脱机”输入/输出的目的。利用这种技术可把独占设备转变成共享的虚拟设备原创 2017-04-19 11:27:35 · 5878 阅读 · 0 评论 -
fork 函数继承
知道子进程自父进程继承什么或未继承什么将有助于我们。下面这个名单会因为 不同Unix的实现而发生变化,所以或许准确性有了水份。请注意子进程得到的是 这些东西的 *拷贝*,不是它们本身。由子进程自父进程继承到:进程的资格(真实(real)/有效(effective)/已保存(saved) 用户号(UIDs)和组号(GIDs))环境(environment)原创 2017-04-15 11:51:40 · 270 阅读 · 0 评论 -
死锁
死锁及处理所谓死锁就是一个进程集合中的多个进程因为竞争资源,而造成的互相等待现象。很显然,如果没有外力的作用,那么死锁涉及到的各个进程都将永远处于封锁状态。产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。死锁的必要条件: 互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使原创 2017-04-15 14:32:51 · 371 阅读 · 0 评论 -
中断类型
中断类型分为如下两大类: 一、强迫性中断:正在运行的程序所不期望的,来自硬件故障或外部请求。 1、I/O 中断:来自外部设备通道; 2、程序性中断:运行程序本身的中断,如 溢出、缺页中断、缺段中断、地址越界。 3、时钟中断 4、控制台中断 5、硬件故障 二、自愿性中断:用户在编程时要求操作系统提供的服务,使用访管指令或系统调用使中断发生。也称为访管中断。包括执行原创 2017-04-17 14:18:52 · 17442 阅读 · 1 评论 -
Linux 共享内存实现
参考资料:https://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html/*-------------map_normalfile1.c-----------*/#include <sys/mman.h>#include <sys/types.h>#include <fcntl.h&g...原创 2019-01-02 00:22:46 · 675 阅读 · 0 评论