随笔分类 -  操作系统

摘要:本文转自:http://blog.163.com/xychenbaihu@yeah/blog/static/132229655201210975312473/如何查看进程发生缺页中断的次数?用ps -o majflt,minflt -C program命令查看。majflt代表major fault... 阅读全文
posted @ 2015-09-27 14:42 vincently 阅读(4153) 评论(0) 推荐(0)
摘要:物理内存的管理 Linux管理物理内存是使用分页机制实现的。为了使分页机制在32位和64位体系结构下高效工作,Linux采用了一个四级分页策略。 Linux支持多种内存分配机制。分配物理内存页框的主要机制是页面分配器,它使用了著名的伙伴算法作为物理内存分配机制。 管理一块内存的基本思想如下... 阅读全文
posted @ 2015-09-17 10:53 vincently 阅读(338) 评论(0) 推荐(0)
摘要:内核态与用户态是操作系统的两种运行级别,一个运行在内核模式的进程可以执行指令集中的任何指令,并且可以访问系统中任何存储器位置。用户模式中的进程不允许执行特权指令,比如停止处理器、改变模式位,或者发起一个I/O操作。也不允许用户模式中的进程直接引用地址空间中内核区内的代码和数据。 换句话说,当一... 阅读全文
posted @ 2015-08-31 16:18 vincently 阅读(3009) 评论(0) 推荐(0)
摘要:多个进程可以共享系统中的各种资源,但其中许多资源一次只能为一个进程使用,我们把一次仅允许一个进程使用的资源称为临界资源,许多物理设备都属于临界资源,如打印机等。 Linux下进程间通信有如下几种方式: 1)管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信... 阅读全文
posted @ 2015-08-23 09:28 vincently 阅读(324) 评论(0) 推荐(0)
摘要:当多个线程共享相同的内存时,需要确保每个线程看到一致的数据视图。如果每个线程使用的变量都是其他线程不会读取和修改的,那么就不存在一致性问题。同样,如果变量是只读的也不会有一致性问题。但是,当一个线程可以修改变量,其他线程也可以读取或者修改的时候,我们就需要对这些线程进行同步,确保它们在访问变量的... 阅读全文
posted @ 2015-08-22 09:52 vincently 阅读(1047) 评论(0) 推荐(0)
摘要:所谓死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外作用,这些进程都将无法向前推进。1. 死锁产生的原因 1)进程推进的顺序不当 2)系统资源的不足 3)系统资源分配不当2. 死锁产生的必要条件 产生死锁必须同时满足一下四个条件,只要其中任一条件不成立,死锁就不会发生。 ... 阅读全文
posted @ 2015-08-20 20:46 vincently 阅读(221) 评论(0) 推荐(0)
摘要:什么是堆 光有栈对于面向过程的程序设计还远远不够,因为栈上的数据在函数返回的时候就会被释放掉,所以无法将数据传递至函数外部。而全局变量没有办法动态地产生,只能在编译的时候定义,有很多情况下缺乏表现力。在这种情况下,堆是唯一的选择。 堆是一块巨大的内存空间,常常占据着整个虚拟空间的绝大部分。在这片... 阅读全文
posted @ 2015-07-24 08:37 vincently 阅读(1801) 评论(0) 推荐(1)
摘要:基本概念: 在类UNIX系统中,僵尸进程是指完成执行(通过exit系统调用,或运行时发生致命错误或收到终止信号所致)但在操作系统的进程表中仍然有一个进程表表项(进程控制块PCB),处于"终止状态"的进程。这发生于子进程需要保留表项以允许其父进程读取子进程的exit status:一旦退出态通过wa... 阅读全文
posted @ 2015-04-28 20:57 vincently 阅读(484) 评论(0) 推荐(0)
摘要:线程有时被称为轻量级进程(Lightweight Process, LWP), 是程序执行流的最小单元。一个标准的线程由线程ID,程序计数器(Process Counter),寄存器集合和堆栈(stack)组成。通常意义上,一个进程由一个或多个线程组成,各个线程之间共享程序的内存空间(包括代码段、数 阅读全文
posted @ 2015-04-22 14:36 vincently 阅读(859) 评论(0) 推荐(0)
摘要:进程的经典定义是一个执行中的程序的实例。注意,一个程序运行了两遍,则算作两个进程。操作系统能够使他们共享代码,因此只有一个副本放在内存中。 在传统的操作系统中,每个进程都有一个地址空间和控制线程。不过,经常存在在同一个地址空间中准并行运行多个控制线程的情形 系统中的每个程序都是运行在某个进程的上下文 阅读全文
posted @ 2015-04-16 11:20 vincently 阅读(506) 评论(0) 推荐(0)