Chinaunix首页 | 论坛 | 博客
  • 博客访问: 191947
  • 博文数量: 219
  • 博客积分: 1435
  • 博客等级: 中尉
  • 技术积分: 1388
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-17 09:27
文章分类

全部博文(219)

文章存档

2013年(2)

2012年(183)

2011年(34)

我的朋友

分类:

2011-12-13 13:30:19

原文地址:Linux进程+进程间通信IPC 作者:

进程控制理论基础:
    定义:进程是一个具有一定独立功能的程序的一次运行活动。
    特点: 动态性、并发性、独立性、异步性
    状态:就绪-进程调度-->执行-I/O请求-->阻塞--->就绪
              <----------------------------I/O完成
               <-------时间片完
    进程ID:
        PID:表示进程的唯一数字,
        父进程的ID(PPIND)
        启动进程的用户ID(UID)

    进程互斥:进程互斥是指当有若干进程都要使用某个资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者释放了该资源为止。
   
    临界资源:操作系统中将一次只允许一个进程访问的资源称为临界资源。
   
    临界区:进程中访问临界资源的[那段程序代码]称为临界区。为实现对临界资源的互斥访问,应保证诸进程互斥地进入各自的临界区。
   
    进程同步:一组并发进程按[一定的顺序],执行的过程称为进程间的同步。具有同步关心的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。
   
    进程调度:
        概念:按一定的算法,从一组待运行的进程中选出一个来占有CPU运行。
        调度方式: 抢占式、非抢占式.
        调度算法:
            先来先服务调度算法
            短进程优先调度算法
            高优先级优先调度算法
            时间片轮转法
   
     死锁:多个进程因竞争资源而形成一种僵局,若无外力作用,这些进程都将永远不能再向前推进。
        例如:A进程占有资源1企图获取资源2,B进程占有资源2企图获取资源1;如果它们谁都不放,将会死锁。

进程的内存映像

解释

  BSS段:在采用段式内存管理的架构中,BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。

   数据段:在采用段式内存管理的架构中,数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。

  代码段:在采用段式内存管理的架构中,代码段(code segment / text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读, 某些架构也允许代码段为可写,即允许自修改程序。 在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。

  栈(stack)在计算机科学中,是一种特殊的链表形式的数据结构,它的特殊之处在于只能允许在链表的一端(称为栈顶,英文为top)进行添加 和删除操作。另外堆栈数据结构的实现也可以通过数组来完成。栈Stack是存放程序中局部变量的内存区,另外栈stack用来保存函数调用的现场。栈 stack由系统自动分配,用户不需要关心其分配和释放。

  堆(Heap):程序运行时供程序员来支配的一段内存。 用于进程运行时动态分配内存。堆的大小不固定,可根据程序运行动态变化。由程序中的new/delete等控制。
  


阅读(353) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~