操作系统
文章平均质量分 63
eten
这个作者很懒,什么都没留下…
展开
-
银行家算法详解
银行家算法( banker's algorithm )由 Dijkstra(1065)提出。他将死锁的问题演示为一个银行家贷款的模型。一个银行家向一群客户发放信用卡,每个客户有不同的信用额度。每个客户可以提出信用额度内的任意额度的请求,直到额度用完后再一次性还款。银行家承诺每个客户最终都能获得自己需要的额度。所谓“最终”,是说银行家可以先挂起某个额度请求较大的客户的请求,优先满足小额度的请转载 2012-10-04 15:01:24 · 10656 阅读 · 0 评论 -
记录C程序员面试题、算法、算法导论、Linux、Qt、NS2、Embedded等相关的的博客汇总
C++ STL 用法总结STL中map用法详解stl hash_map详解算法导论学习总结http://www.wutianqi.com/?cat=515程序员面试编程之美解析博客http://0600310231.blog.163.com/blog/static/47291685201232093451506/http://www.cnblog原创 2012-10-07 13:25:13 · 2133 阅读 · 0 评论 -
多核编程理论与实践参考博客
前辈博客:http://blog.csdn.net/drzhouweiming/article/details/4019792转载 2013-03-09 11:10:11 · 1059 阅读 · 0 评论 -
堆(heap)和栈(stack)、内存泄漏(memory leak)和内存溢出
简单的可以理解为:heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中转载 2012-11-04 23:08:36 · 1843 阅读 · 0 评论 -
Linux的进程通信(IPC)
进程间通信的目的数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间。共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。资源共享:多个进程之间共享同样的资源。为了作到这一点,需要内核提供锁和同步机制。转载 2012-10-07 21:43:35 · 882 阅读 · 0 评论 -
多线程和多进程的区别(小结)
总结的很好,学习下:http://blog.csdn.net/hairetz/article/details/4281931/很想写点关于多进程和多线程的东西,我确实很爱他们。但是每每想动手写点关于他们的东西,却总是求全心理作祟,始终动不了手。今天终于下了决心,写点东西,以后可以再修修补补也无妨。 一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但转载 2012-11-04 23:00:20 · 1653 阅读 · 0 评论 -
动态内存分区分配方式模拟[转帖]
百度面试题:给定一块内存,大小为1M,现有一些内存请求序列1K、2K、4K、10K........要求模拟实现new/delete内存分配过程。对应题目如下: 假设初始态下,可用内存空间为640K,并有下列请求序列,请分别用首次适应算法和最佳适应算法为作业分配和回收内存块,并显示出每次分配和回收后的空闲分区链的情况来以及内存占用情况图。作业1申请130K作业2申转载 2012-10-09 15:41:26 · 5099 阅读 · 1 评论 -
操作系统的分类
一、批处理操作系统 批处理(Batch Processing)操作系统的工作方式是:用户将作业交给系统操作员,系统操作员将许多用户的作业组成一批作业,之后输入到计算机中,在系统中形成一个自动转接的连续的作业流,然后启动操作系统,系统自动、依次执行每个作业。最后由操作员将作业结果交给用户。批处理操作系统的特点是:多道和成批处理。二、分时操作系统 分时(Time Sharing)操作原创 2012-10-08 09:34:26 · 1398 阅读 · 0 评论 -
页面置换、作业调度、进程调度小剖析[转帖]
页面置换、作业调度和进程调度他们之间有很多相似的地方,作业跟进程调度之间尤为相似,之前一直搞不清他们之间的区别跟联系,你是不是也跟我有一样的感受呢?看完这篇文章或许会让你对他们有更清晰的认识。页面置换算法:1,先进先出:淘汰最早进入cache的信息块。2,最近最久未使用:淘汰近期使用频率最低的信息块。3,随机替换:用随机数发生器随转载 2012-10-11 09:56:17 · 796 阅读 · 0 评论 -
Linux下TCP Socket编程C语言小实例
TCPServer端#include #include #include #include #include #include #include //#include #include //#include #include #include /** 关于 sockaddr sockaddr_in socketaddr_un说明 http://mao原创 2012-10-07 10:59:14 · 21728 阅读 · 1 评论 -
Window中虚拟地址与物理地址之间的转化
如上所述,在确保访问的数据已在物理内存中后,还需要先将虚拟地址转换为物理地址,即"地址映射",才能够真正访问此数据。本节讲述Win32中虚拟内存管理器如何将虚拟地址映射为物理地址。Win32通过一个两层表结构来实现地址映射,因为4 GB虚拟地址空间为每个进程私有,相应地,每个进程都维护一套自己的层次表结构用来实现其地址映射。第一层表称为"页目录"(page directory),实际上就是转载 2012-10-08 23:27:14 · 5224 阅读 · 0 评论 -
Windows内存管理
本文主要内容:1.基本概念:物理内存、虚拟内存;物理地址、虚拟地址、逻辑地址;页目录,页表2.Windows内存管理3.CPU段式内存管理4.CPU页式内存管理 一、基本概念1. 两个内存概念物理内存:人尽皆知,就是插在主板上的内存条。他是固定的,内存条的容量多大,物理内存就有多大(集成显卡系统除外)。但是如果程序运行很多或者程序本身很大的话,就会导致大量的物理内存转载 2012-10-07 13:06:59 · 1122 阅读 · 0 评论 -
Linux多线程编程
线程分类 线程按照其调度者可以分为用户级线程和核心级线程两种。 (1)用户级线程 用户级线程主要解决的是上下文切换的问题,它的调度算法和调度过程全部由用户自行选择决定,在运行时不需要特定的内核支持。在这里,操作系统往往会提供一个用户空间的线程库,该线程库提供了线程的创建、调度、撤销等功能,而内核仍然仅对进程进行管理。如果一个进程中的某一个线程调用了一个阻塞的转载 2012-10-07 21:42:31 · 678 阅读 · 0 评论 -
进程死锁及解决办法
一、要点提示:(1)掌握死锁的概念和产生死锁的根本原因。(2)理解产生死锁的必要条件 -- 以下四个条件同时具备:互斥条件、不可抢占、占有且申请、循环等待。(3)记住解决死锁的一般方法,掌握死锁的预防和死锁的避免二者的基本思想(4)掌握死锁的预防策略中资源有序分配策略。(5)理解进程安全序列的概念,理解死锁与安全序列的关系。(6)了解银行家算法。(7)了解资源分配图转载 2012-10-04 14:33:26 · 4510 阅读 · 0 评论 -
Linux互斥锁的使用代码实现
#include #include #include #include //对临界区的保护问题void *fun1(void *arg);void *fun2(void *arg);int buffer = 0;pthread_mutex_t mutex;int running = 1;int main(void ){ pthread_t pt1; p原创 2012-10-03 11:51:23 · 7526 阅读 · 1 评论 -
编程实现生产者消费者问题
#include #include #include #include void *producter_f (void * arg);void *consumer_f (void *arg);sem_t empty; //信号量 emptysem_t full; //信号量 fullint running = 1;int apple_num = 0;int原创 2012-10-03 11:31:43 · 7025 阅读 · 0 评论 -
C/C++程序员面试题集
2013年3月20日今天偶然间看到一个关于C++面试的博客,里边介绍的很基础很全面,基本上涵盖了我这半年多来面试时所遇到的各种问题,链接如下:http://edu.yesky.com/84/3041584.shtml2012年10月18号百度PC客户端岗位一面电话面试面试题:前奏:因为阿里巴巴的面试不能由大连调北京,我就风尘扑扑的从北京回到大原创 2012-10-25 17:14:19 · 20885 阅读 · 2 评论