操作系统
文章平均质量分 87
___Blue_H
0和1的世界简单一点
展开
-
扩展文件系统(Ext)
文件系统文件系统是操作系统用于明确存储设备(常见的有磁盘和基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。从系统角度看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,文件系统负责为用户建立文件,存入、读出、修改转储...原创 2017-08-09 01:18:40 · 4003 阅读 · 0 评论 -
Linux进程的内存空间布局
此文也可看作是Linux下C程序的内存空间布局(虚拟地址),因为在Linux下的C编译器本质上也是一个进程,编译器再强大也得在操作系统的保护模式下运行。内存空间布局 在Linux中,进程的内存空间按低地址到高地址的顺序分为:代码段text、数据段data、bss段、堆、栈和内核数据区(命令行参数和环境变量等)。如下图所示: 从C程序的角度来说,...原创 2018-10-09 11:51:41 · 4964 阅读 · 0 评论 -
孤儿进程和僵尸进程
孤儿进程和僵尸进程与Linux的进程回收机制有关。在Linux中,使用系统调用exit函数族使进程结束运行。在用户程序中即使程序员没有写入调用exit的代码,系统也会在最后执行exit的系统调用。 在多进程环境下,子进程的结束状态应该让父进程知道,因为父进程可能会需要子进程的一些信息。程序都会有返回值,子进程的主函数会把返回值通过系统调用exit提交给内核(因此exi...原创 2018-10-09 21:42:53 · 1054 阅读 · 0 评论 -
Linux进程间通信总结
目录信号管道命名管道System V IPC组成标识符ftok函数结构定义特点消息队列信号量共享内存套接字Linux下的进程间通信(Interprocess Communication,IPC)方式基本上是从Unix继承而来的。对Unix发展做出重大贡献的两个实验室:AT&T的贝尔实验室、BSD在IPC方面的侧重点有所不同。前者...原创 2018-11-13 12:52:44 · 912 阅读 · 0 评论 -
进程间通信之Linux命名管道编程
命名管道管道(匿名管道)的使用局限性大,这与管道的实现机制有关。而命名管道(Named Pipe)不仅可在同一台计算机的任意不同进程之间通信,而且还可以在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。命名管道不同于管道之处在于它提供一个路径名与之关联,以命名管道的文件形式存在于文件系统中。这样,即使与命名管道的创建进程不存在亲缘关系的进程,只要能够访问该路径,就...原创 2018-11-11 11:29:07 · 706 阅读 · 0 评论 -
进程间通信之Linux消息队列编程
消息队列消息队列是一种以链表为结构组织的数据,存放在Linux内核中,是由各进程通过消息队列标识符来引用的一种数据传送方式。每个消息队列都有一个队列头,利用结构struct msg_queue来描述。队列头中包含了该消息队列的基本信息,包括消息队列键值、用户ID、组ID、消息数目等,甚至记录了最近对消息队列读写进程的PID。消息队列的队列头存在于内核空间中,结构定义如下:struct...原创 2018-11-11 21:10:07 · 1018 阅读 · 0 评论 -
进程间通信之Linux信号量编程
信号量信号量(Semaphore)是一种用于实现计算机资源共享的IPC机制之一,其本质是一个计数器。信号量是在多进程环境下实现资源互斥访问或共享资源访问的方法,可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,进程/线程必须获取一个信号量;一旦该关键代码段完成了,那么该进程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个进程释放信号量。信号量有两种应用形...原创 2018-11-12 16:03:03 · 8191 阅读 · 1 评论 -
进程间通信之Linux管道编程
管道简述管道(pipe)是Unix/Linux中最常见的进程间通信方式之一,它在两个进程之间实现一个数据流通的通道,数据以一种数据流的方式在进程间流动。在系统中,管道相当于文件系统上的一个文件,用于缓存所要传输的数据。在某些特性上又不同于文件,例如当数据读出后,管道中就没有数据了,但文件没有这个特性。管道有两个特点:·部分系统下的管道是半双工的,数据在同一时间只能向一个方向流动。从实现的角...原创 2018-11-10 19:53:03 · 3273 阅读 · 0 评论 -
Linux的硬链接与软链接(符号链接)
Linux的文件链接方式分为硬链接与软链接(也叫符号链接)两种,在Linux中链接也被视为文件来看待,一样可以被执行、编辑和访问。对系统中的应用程序而言,对链接的操作就是对原始文件的操作,所以链接不是副本。如果熟悉Linux的文件系统与目录树(相关博客链接扩展文件系统、文件系统与目录树的关系),知道这两者间的联系的话可以很容易理解这两种文件链接方式的原理和区别。文件系统告诉我们,任何一个文件(...原创 2017-08-20 22:53:57 · 1169 阅读 · 0 评论 -
特权级
操作系统的保护模式相对于实模式最大的改变之一就是安全性的提升,这是通过引入权限概念来实现的。如下图所示,操作系统内核作为直接控制硬件设备的底层软件,权限最高;而驱动程序、虚拟机等系统程序的权限则次于内核;用户程序的权限最低,位于特权级最外层。特权级环形图TSS任务状态栈 任务状态栈(Task-State Segment,TSS)是处理器在硬件上原生支持多任...原创 2018-09-30 10:42:34 · 2221 阅读 · 0 评论 -
内核级线程与用户级线程
回想大二刚上操作系统课的时候老师讲了进程和线程的知识,当时模棱两可,写下了一篇疏浅的博客(点击打开链接)。现在转眼即将毕业,为了找工作开始系统地复习学过的知识,看了《操作系统真象还原》后,加上这么长时间的知识积累,对线程实现也有了进一步了解。执行流 操作系统就是一个无限循环,处理器不断取指、执行、取指……就是计算机所做的事情。通过加入中断调用让处理器先执行其他指令...原创 2018-10-07 22:26:25 · 1439 阅读 · 0 评论 -
分时操作系统与实时操作系统
计算机操作系统从20世纪50年代中期第二代计算机的单道批处理系统到20世纪60年代中期第三代计算机的多道批处理系统(IBM公司研发的OS/360系统是第一个能运行多道程序的批处理系统),都主要致力于提高资源利用率和系统吞吐量。但人们对人机交互的需求却一直未能得到有效解决,因此一种新型OS——分时OS就应运而生了,紧接着实时OS也在工业、军事等领域的需求下也随之诞生。现在我们所使用的操作系统都属于这...原创 2017-09-05 22:16:33 · 29373 阅读 · 1 评论 -
RAID磁盘阵列简介
RAID全名是Redundant Array of Independent Disks(原来的“I”是Inexpensive),即独立冗余磁盘阵列,是将许多较小的磁盘组成一个大的磁盘组的技术。 分类RAID分软件和硬件两种,其中硬件又分为外接式磁盘矩阵和内接式磁盘矩阵两种。software RAID是利用软件仿真方式将磁盘或者分区组成一个阵列,可以提供数据冗余功能,但性能较hardwa...转载 2017-09-05 11:00:13 · 1569 阅读 · 0 评论 -
程序、进程与线程的概念浅析
操作系统由开始的单道批处理系统到多道批处理系统再发展为分时系统、实时系统等,其显著变化之一就是对程序的处理由单通道顺序处理变为多通道并发处理,不断提高CPU的利用率,由此提出了进程与线程的概念。程序(Program)程序有多种含义,在操作系统中,程序就是一系列有序指令的集合,可以作为软件存放于某种介质上,其本身没有任何运行的含义,是一个静态的概念。例如程序员写出来的代码放到计算机中编译为机...原创 2017-09-24 14:03:43 · 879 阅读 · 0 评论 -
实模式和保护模式
从80386开始,CPU有三种工作模式:实模式、保护模式和虚拟8086模式。80286开始的CPU引入保护模式,实际上,实模式概念是在保护模式推出之后为了区别保护模式之前的8086CPU工作模式才有的,在8086时代CPU工作模式只有一种,自然没有实模式之说。实模式有着先天的缺陷(下文详述),但出于向上兼容的考虑,现代CPU仍然保持着对16位操纵模式的兼容。 所谓工作...原创 2018-09-23 13:11:02 · 13817 阅读 · 2 评论 -
全局描述符表GDT和局部描述符表LDT
段描述符 IA-32架构的处理器访问内存都是采用“段基址:段内偏移地址”的形式,即使到了保护模式也不例外。其次,实模式脆弱的安全性也是保护模式推出的重要原因。为了内存安全性,必须为内存段添加一些额外的安全属性,如特权级、段界限、段类型等。描述内存段属性的数据结构就叫段描述符。其结构定义如下所示: 一个段描述符是8字节大小,它描述了一个内存段的地址范围和各种属性。...原创 2018-09-24 14:14:33 · 5267 阅读 · 0 评论 -
中断
定义 在计算机科学中,中断指计算机CPU获知某些事,暂停正在执行的程序,转而去执行处理该事件的程序,当这段程序执行完毕后再继续执行之前的程序。整个过程称为中断处理,简称中断,而引起这一过程的事件称为中断事件。中断是计算机实现并发执行的关键,也是操作系统工作的根本。分类 中断按事件来源分类,可以分为外部中断和内部中断。中断事件来自于CPU外部的被称为外部中断,来自...原创 2018-10-03 18:54:31 · 17245 阅读 · 0 评论 -
CPU寻址方式
汇编语言的语法是指令+“指令目的操作数,源操作数”。需要处理的数据(立即数、地址、寄存器存放的数据等)称为源操作数,而指令处理结果的存放目的地称为指令目的操作数(寄存器、地址等)。而处理器是根据地址从存储单元中取出指令来执行的,根据CPU访问数据(寻址)形式的不同划分了以下几种寻址方式:寻址方式 寄存器寻址 立即数寻址 内存寻址 直接寻址 基址寻址 变址寻...原创 2018-09-22 17:19:41 · 6096 阅读 · 0 评论 -
内存分页机制
为什么要分页在保护模式中,内存访问使用分段机制——即"段基址:段内偏移地址"的方式,为加强段内存的安全性和可管理性还引入了段描述符的概念对段内存加强管理。但仅仅这样还是不够的,如果应用程序过多,或者内存碎片过多,又或者曾经被换出到硬盘的内存段需要再重新装载到内存,可内存中找不到合适大小的区域,要如何解决?内存置换当下大部分操作系统的方案是,将一些进程不常用的内存段换出到硬盘中,腾出内存空间...原创 2018-09-27 18:08:33 · 21609 阅读 · 3 评论 -
主存内容更新算法
更新主存内容主存和缓存之间信息交换的关键是更新主存内容,一般有两种更新算法:写回法(Write Back)和写直达法(Write Through)。写回法是指在CPU执行写操作命中Cache时,信息只写入Cache,仅当需要被替换时,才将已被写入过的Cache块先送回主存,然后再调入新的数据块。写回法包括简单写回法和采用标志位的写回法。简单写回法不管块是否更新,都进行写回操作;而采用标志位...原创 2019-01-15 02:13:53 · 4454 阅读 · 0 评论