![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
调度
文章平均质量分 83
仙人掌开叉
技术宅
展开
-
IO多路复用
IO多路复用1、前言IO多路复用指的是在单个线程中以阻塞的方式同时监控多个文件描述符上的IO事件。Linux中常用的IO多路复用方法主要为:select、poll和epoll,三者各有优缺点。2、原理2.1 selectselect的基本原理是通过将要监控的fd集合以fd_set的方式传递给内核,其中fd_set可以理解为内核中描述fd的位图,被置位的位意味着要监控的fd。这样的句柄位图,它可以向内核传递三个,分别是用来监控读、写、异常三个事件的,原型如下所示:int select(int nf原创 2021-06-16 15:15:22 · 127 阅读 · 0 评论 -
进程生命周期浅析
进程生命周期浅析一、前言本章节讲述内核对于进程的实现,包括进程的创建、状态变更和进程的销毁。对于进程的运行(即调度),已在其他章节中分析,这里不再进行赘述。二、进程创建内核中与进程创建相关的系统调用包括fork、vfork、clone、unshare、exec等。fork:该系统调用没有参数,其创建个子进程,并采用写时复制技术,拷贝一份父进程的页表并标记为只读,当尝试对页表里的页进行写入时,将会触发拷贝动作(如果该页的使用数为1,则说明只有一个进程在使用,直接将其设置为可写)。vfork:与f原创 2021-06-16 15:17:43 · 311 阅读 · 0 评论 -
进程调度之核心调度器
进程调度之核心调度器调度行为的发生一般有两种方式:自己主动放弃CPU并进入等待运行队列,该过程通过主调度器实现;系统通过中断周期性地检查进程状态,以确定是否需要调度,该过程通过周期性调度器实现。主调度器: 主动调度器,即schedule函数。周期性调度器:由硬件中断触发,周期性检查进程是否需要调度。主调度器和周期性调度器合称为核心调度器,也就是说只有通过这两个内核功能,才会引发进程调度的发生。值得说一下的是,周期性调度器并不会直接调度进程,而是为当前运行的进程设置个需要进行调度的标志位(TIF原创 2021-06-16 15:13:56 · 306 阅读 · 0 评论