进程的状态:
- 运行态(该时刻进程实际占用CPU)
- 就绪态(可运行,但因为其他进程正在运行而暂时停止)
- 阻塞态(除非某种外部事件发生,否则进程不能运行)
产生死锁的四个必要条件:
(1) 互斥条件:一个资源每次只能被一个进程使用。
(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
进程特性:
1、并发性:指多个进程实体同存于内存中,且在一段时间内同时运行。并发性是进程的重要特征,同时也成为操作系统的重要特征。
2、动态性:进程的实质是进程实体的一次执行过程,因此,动态性是进程最基本的特征。
3、独立性:进程实体是一个独立运行、独立分配资源和独立接受调度的基本单位。
4、异步性:指进程按各自独立的、不可预知的速度向前推进,或者说实体按异步方式运行。
一个C++程序的内存分段布局:
代码段(Text segment):存放可执行文件的操作指令,即可执行程序在内存中的镜像;
数据段(Data segment):Static variables initialized by the programmer.
BSS段(Block Started by Symbol):Uninitialized static variables, fill with zeros. BSS段通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是可读写的,在程序执行之前BSS段会自动清0。
Heap(或free store):存放进程运行中被动态分配的内存段,例如当进程调用malloc/new等函数分配内存时;
Stack:存放程序临时创建的局部变量,此外函数被调用时,其参数也会被压入发起调用的进程栈中。
通道=>设备控制器=>设备