-
IO 多路复用(todo)
epoll的全称是eventpoll,它是基于event事件进行实现的,是linux特有的IO复用函数。 在内核中创建epoll实例并返回一个epoll文件描述符。 在最初的实现中,调用者通过 size 参数告知内核需要监听的文件描述
-
Linux为啥有很多sleeping进程呢?
sleeping本身是正常的,是休眠的意思。对于单CPU系统来讲,某个时间点上只有一个running的进程,其他进程为休眠或就绪状态。关键是你的进程数量太多了,看看是哪些进程这么多。sleeping本身是正常的,是休眠的意思。对于单CPU系
-
linux进程调度的三种策略是什么?
进程调度策略就是调度系统种哪一个进程来CPU运行。这种调度分2层考虑。 第一层,进程状态这个是最优先考虑的,也就是说优先级最高的。在linux中只有就绪态的进程才有可能会被调度选中然后占有CPU,其它状态的进程不可能占有的到CPU。下面
-
linux c 引用传递参数
CC++函数参数的传递方式有三种:值传递(pass by value)、指针传递(pass bypointer)、引用传递(pass by reference)。CC++函数参数的传递通道是通过堆栈传递,默认遵循__cdecl(C声明方
-
linux rt mutex是什么意思
最近在看linux rtmutex部分的实现过程,就像他注释中写的一样,还是比较简单的。其中比较复杂的部分就是关于任务优先级继承的部分。 首先介绍优先级反转的背景。何为优先级反转?通俗来说就是低优先级的任务抢占了高优先级的运行权。下面举出一
-
为什么创建进程要用原语来实现
所谓原语,是 *** 作系统内核中,由若干条指令构成、用于完成一个特定的功能的一个过程,该过程在执行时是不可中断的。?如:创建进程原语:create(n),撤销进程原语:destroy(n),阻塞进程原语:block(),唤醒进程原语:wakeup
-
忘了怎么看Linux支不支持epoll
select、poll、epoll都是IO多路复用的机制,但是他们的机制有很大的区别1、select select机制刚开始的时候,需要把fd_set从用户空间拷贝到内核空间,并且检测的fd数是有限制的,由FD_SETSIZE设置,一般是1
-
linux中什么是时间片
时间片,简单来说就是CPU分配给各个程序的时间,使各个程序从表面上看是同时进行的,而不会造成CPU资源浪费。时间片轮转调度中唯一有趣的一点是时间片的长度。从一个进程切换到另一个进程是需要一定时间的--保存和装入寄存器值及内存映像,更新各种表
-
linux挂起是什么意思
挂载就是把硬盘设备连接到某个目录下。比如mount -t vfat -o utf8 devsda1 mntwinC,就是把devsda1这个分区(我的机器上对应的是win下的C盘)挂载到mntwinC下。目录可以自行创建,好
-
TeamViewer 12在Linux环境下启动报检查版本错误的解决办法
解决办法: 原文链接:https:community.teamviewer.comt5Linuxquot-Verification-of-TeamViewer-failed-quot-on-Linuxtd-p1061、
-
关于Linux下的selectepoll
select这个系统调用的原型如下 第一个参数nfds用来告诉内核 要扫描的socket fd的数量+1 ,select系统调用最大接收的数量是1024,但是如果每次都去扫描1024,实际上的数量并不多,则效率太低,这里可以指定需要扫
-
linux中的线程有哪几种状态
就绪:线程分配了CPU以外的全部资源,等待获得CPU调度执行:线程获得CPU,正在执行阻塞:线程由于发生IO或者其他的 *** 作导致无法继续执行,就放弃处理机,转入线程就绪队列挂起:由于终端请求, *** 作系统的要求等原因,导致挂起。b a lo
-
Linux下有没有约定俗成的关于32位整形、64位整形的宏定义?
没有这类约定俗成的宏定义,因为Linux运行在很多不同的处理器以及平台上,这包括八位、十六位、三十二位、六十四位的嵌入式等平台,而理所当然地也要迎合不同平台的硬件指令集情况,在这种情况下,自然不可能有约定俗成的宏定义,正如楼上所说的,Lin
-
关于Linux下的selectepoll
select这个系统调用的原型如下 第一个参数nfds用来告诉内核 要扫描的socket fd的数量+1 ,select系统调用最大接收的数量是1024,但是如果每次都去扫描1024,实际上的数量并不多,则效率太低,这里可以指定需要扫
-
在linux中如何根据nice值设置任务时间片
Linux内核的三种调度方法: 1、SCHED_OTHER 分时调度策略。 2、SCHED_FIFO实时调度策略,先到先服务。 3、SCHED_RR实时调度策略,时间片轮转。实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进
-
linux电平触发和边沿触发中断的区别
电平触发和边沿触发通过字面的意思就能大概知道他的区别。电平触发----是电平达到某一个电平,比如高电平促发,在电平达到软件判断的高电平状态并持续一段时间(可以设置)就触发中断。边沿触发-----分为上升沿和下降沿触发,当有电平变化的时候触发
-
linux下,如何查看socket接收缓冲区有多大后修改?
read的返回值中可以获得大小,read结束之前你是没法知道对方到底发多少给你的。通常的做法,我们会在通讯的报文前加上一些控制信息,比如前4个byte存放数据大小(是否包含这4个byte自己定义)、数据是否分片、每片大小、MAC、控制字符(
-
linux线程怎样调整nice值
Linux内核的三种调度方法: 1、SCHED_OTHER 分时调度策略。 2、SCHED_FIFO实时调度策略,先到先服务。 3、SCHED_RR实时调度策略,时间片轮转。 实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时
-
在linux *** 作系统内核实现里经常使用的红黑树
在linux *** 作系统内核实现里经常使用的红黑树如下:二叉树,按中序遍历后为一递增数组,自平衡意味着树的高度有一个上限,对于红黑树,其为2log(n+1),所以时间复杂度为最差为Olog(n)。赋予二叉搜索树自平衡特性的方法有多种,红黑树