- 博客(36)
- 收藏
- 关注
原创 【Linux】深入理解进程的优先级(Linux 2.6版本O(1)调度算法)
然后CPU运行活动队列,不需要管新加入的进程,统一将新加入的进程放到过期队列中,过期队列其实就相当于是活动队列的一个镜像,新加入的进程就根据优先级映射到对应的数组下标,然后添加进对应位置的哈希桶里面,当CPU把运行队列里的内容都执行完了。而一个CPU通常一次只能调度一个进程,而操作系统里是有很多的进程需要被调度的,所以这就意味着,这些等待被调度的进程就要进行排队,而排队就要有先后的顺序,也就是进程的优先级,但是这样线性遍历的时间复杂度是一个O(N)级别的,我们操作系统响应是非常快的,这显然不合适。
2024-06-03 18:45:21
982
原创 【Linux】什么是进程?
而我们的操作系统肯定不会只是管理一个进程,它肯定要管理很多的进程,那么肯定要有一种特定的数据结构来对进程进行管理,Linux里面,是使用双向链表的形式进行管理,其实就是在task_struct里面添加一个前驱指针和后继指针就可以将它们关联起来。操作系统底层是用C语言编写的,而我们的进程,它会有各种属性,那么各种属性就可以用一个结构体来对进程的各个属性进行描述,然后这个结构体里面,肯定会存在一个指针,指向了我的进程加载在内存对应的代码和数据,一个正在执行的程序,我们称之为进程。然后我们来顺着一条线来思考。
2024-05-10 23:22:48
535
原创 【MySQL】数据类型(1)
MySQL的数据类型,int,tinyint,samllint,mediumint,bigint,float,bit,decimal
2024-04-02 22:02:24
367
原创 【MySQL】数据库的基本操作
MySQL的库操作,表操作创建库,删除库,修改库,查看库,备份库,恢复库创建表,添加表内容,添加列,修改列,删除列,删除表
2024-04-01 11:22:25
904
原创 【Linux】撕开进程等待的真面目!
阻塞状态就是我们的父进程在等待子进程,子进程在没有退出的时候,父进程什么事情也做不了,它只能一直等待,直到子进程结束,就是该进程没有达到某一条件就无法继续下去,就一直等到该条件满足的时候,才能继续进行。这种状态就是阻塞状态。这是一种被动的状态。
2023-11-03 21:57:05
61
原创 【c++11】function和bind
function是c++11的产物,包含在functional的头文件里,它是一种包装器,它的出现,使得一些函数能够被接收。function函数的用法也很简单。首先function的外面的Ret是函数的返回类型,Args是函数的参数。就比如return x-y;return 0;了解完这些,我们开始对function的使用进行扩展,既然function是相当于将一个函数存到一个对象里面,那么function就可以将它作为容器的模板参数,就比如。
2023-10-09 13:44:08
147
原创 【c++】手撕AVL树
二叉树搜索树存在缺点,就是二叉搜索树如果不平衡左子树和右子树高度相差较多时,搜索的效率会降低。甚至可能会退化成链表。就如同下图。这是AVL树的基本框架这里使用struct来定义AVL树的节点是因为struct默认是public,方便后面的使用。
2023-09-25 16:55:35
60
1
原创 初始c语言1(来自c语言初学者的学习分享)
在c语言中我们经常可以看到int main()它有一个名称叫做主函数,一个c程序代码里面只能有一个主函数。这里有一点需要我们注意到的是,我们如果在一个工程里面,创建了两个源文件,就比如我们创建了一个空项目,进入空项目要开始写代码前需要添加一个源文件,这时候假如我们创建了两个源文件,我们也是有且仅有一个主函数的,意思就是这两个源文件里面,只能是有一个int main()。所以不建议在一个项目里面创建两个源文件。在我们使用int main()之前,我们还需要在它的上面添加一行#include
2022-11-01 00:24:39
87
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人