
操作系统
One2zeror
这个作者很懒,什么都没留下…
展开
-
进程、线程小结(2)
1. 进程描述符及任务结构 最初的进程定义都包含程序、资源及其执行三部分,其中程序通常指代码,资源在操作系统层面上通常包括内存资源、IO资源、信号处理等部分,而程序的执行通常理解为执行上下文,包括对cpu的占用等 Linux内核把进程列表存放在焦作的任务列表(task list)的双向链表中。链表中的每一项包含类型为task_struct的结构,用于描述进程,包含一个具体进程的所有信息:原创 2015-06-01 22:13:54 · 676 阅读 · 0 评论 -
进程、线程小结(1)
进程(process)就是处于执行期的代码,不仅包含可执行程序(text section),还包括一些其他资源(如打开的文件,挂起信号,内核数据,内存空间,执行线程,存放全局变量的数据段等)。 线程(thread)是在进程中的活动对象,是内核调度的对象,每个线程都包含独立的程序计数器,进程寄存器和进程栈。 按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计原创 2015-06-01 22:02:33 · 638 阅读 · 0 评论 -
阻塞睡眠实现机制
在看阻塞睡眠实现机制前,我们来看一下内核中广泛用到的等待队列。 Linux内核的等待队列为双循环链表结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。它有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。等待队列头和等待队列项中都包含一个list_head(双链表)。通过这样一个双链表把等待进程链接起来。 下面来看两者数据结构原创 2015-08-02 21:56:41 · 1480 阅读 · 0 评论 -
Linux进程调度机制(1)
进程调度负责决定哪个进程投入运行,何时运行以及运行多长时间。 进程调度:非抢占式和抢占式 Linux这么酷的系统当然是抢占式的喽。 进程在被抢占之前可以运行的时间是预先设定好的,叫做时间片。有效管理时间片能使调度程序从系统全局角度作出调度决定,避免个别进程独占系统资源。I/O消耗型/处理器消耗型 I/O消耗型:进程的大部分时间用来提交I/O请求或是等待I/O请求,这样的进程经常处于可原创 2015-08-03 17:08:38 · 3533 阅读 · 0 评论