日期:2014-05-16 浏览次数:20780 次
一.进程(或者称为“任务”)简介
进程是OS最基本的抽象之一,通常进程包括“可执行程序代码”,“其他资源”(如:打开的文件,挂起的信号,内核内部数据,处理器状态,地址空间,一个或多个执行线程等)
二.执行线程简介
执行线程(或称线程)是进程中活动的对象,内核调度的对象是线程,而不是进程,每个线程中都有一个独立的程序计数器,进程栈,进程寄存器
三.进程虚拟机制简介
进程提供了两种虚拟机制(后面的章节,我们还会学习哈~):1.虚拟处理器:给进程一种假象,让这些进程觉得自己独享处理器(这个需要控制好时间片哈~不能太长也不能太短)
2.虚拟内存: 让进程再获取和使用内存时觉得自己拥有整个系统的所有内存资源
(注:线程之间可以共享虚拟内存,但拥有各自的虚拟处理器)
四.进程在Linux内核中表示的数据结构task_struct
1.内核把进程存放在“任务队列”(一个双向循环链表的结构)中,链表中每一项都是类型为“task_struct(进程描述符)”的结构(<linux/sched.h>中)
2.进程的task_struct是通过slab分配器分配生成的
3.内核通过一个唯一的进程标识值或者PID来标识每个进程。PID是一个数,int类型(最大默认为32768 [short int最大值] )
struct task_struct {