
操作系统
文章平均质量分 83
eskimoer
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Windows内核之线程的调度,优先级,亲缘性
1 调度 Windows不是实时操作系统,它是抢占式多线程操作系统。在假设所有优先级相同的情况下,CPU对线程的调度原则是每隔20m就会切换到下一个线程,根据Context中的IP和SP来接着执行上次的东西。Windows永远不会让1个线程去独占一段时间。2 可调度性 系统只调用可以调度的线程,其实系统的大部分线程都是处于不可调度的状态,要么处于暂停的状原创 2014-05-30 21:46:47 · 3805 阅读 · 0 评论 -
Windows内核之线程启动的背后
1 CreateThread函数调用后发生事情:1.1:创建一个系统内核对象,并且初始化系统内核对象线程的内核对象包括:context(设备上下文),使用计数,暂停计数,退出代码,已通知。使用计数 = 2;暂停计数 = 1;退出代码 = STILL_ACTIVE;已通知=FALSE;上下文之SP(堆栈指针)= 线程的入口函数地址,上下文之IP= BaseThreadStar原创 2014-05-28 10:58:06 · 3095 阅读 · 0 评论 -
Windows内核之作业
Windows内核之作业1 定义: 作业是一种内核对象,它相当于一个容器,里面可以加入很多进程,通过配置作业,可以让作业内的进程具有相同的配置,例如进程的最大执行时间,cpu片占用时间等。2 作业的创建相关函数HANDLE CreateJobObject(LPSECURITY_ATTRIBUTESlpJobAttributes,LPCTSTR lpName);H原创 2014-05-25 15:41:43 · 1881 阅读 · 0 评论 -
Windows内核之进程基本含义以及进程的创建
进程1 进程的含义:1.1 一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。1.2 另一个是地址空间,它包含所有可执行模块或DL L 模块的代码和数据。它还包含动态内存分配的空间。如线程堆栈和堆分配空间。2 操作系统启动应用程序的步骤2.1 调用C/c++运行时的启动函数 启动函数总共4种,WinMainC原创 2014-05-23 00:06:21 · 2559 阅读 · 0 评论 -
Windows内核之进程的终止和子进程
1 进程终止的方法:主线程的进入点函数返回(最好使用这个方法)进程中的一个线程调用ExitProcesss函数(应该避免使用这种方法)。 另一个进程中的线程调用TerminateProcess函数(应该避免使用这种方法)。 进程中的所有线程自行终止运行(这种情况几乎从未发生)。 1.1 主线程进入点函数返回 始终都应该这样来设计应用程序,即只有当主线程的原创 2014-05-24 00:30:20 · 3963 阅读 · 0 评论 -
Windows内核之内核对象
1内核对象定义:1.1:每个内 核对象只是内核分配的一个内存块,并且只能由该内核访问。1.2:该内存块是一种数据结构,它的成员负责维护该对象的各种信息。 有些数据成员(如安全性描述符、使用计数等)在所有对象类型中是相同的,但大多数数据成员属于特定的对象类型。例如,进程对象有一个进程ID 、一个基 本优先级和一个退出代码,而文件对象则拥有一个字节位移、一个共享模式和一个打开模原创 2014-05-22 12:12:20 · 2081 阅读 · 0 评论 -
Windows内核之线程简介
1 线程定义 内核对象,操作系统用它来对线程实施管理。内核对象也是系统用来存放线程统计信息的地方另一个是线程堆栈,它用于维护线程在执行代码时需要的所有函数参数和局部变量.2 线程和进程的区别进程是不活泼的。进程从来不执行任何东西,它只是线程的容器。线程在它的进程地址空间中执行代码,并且在进程的地址空间中对数据进行操作。线程共享进程的地址控件线程只有一个内核对象和一个堆栈原创 2014-05-26 01:55:02 · 2391 阅读 · 0 评论