代码改变世界

调度 15-17

2019-05-28 14:39 by JaPer, 148 阅读, 0 推荐, 收藏, 编辑
摘要:十五: Linux的进程: 1)实时进程; 2)普通进程; 1.task_struct内成员变量: 1)调度策略 #define SCHED_NORMAL 0 #define SCHED_FIFO 1 #define SCHED_RR 2 #define SCHED_BATCH 3 #define 阅读全文

12- 15 进程数据结构

2019-05-28 14:30 by JaPer, 235 阅读, 0 推荐, 收藏, 编辑
摘要:任务 task -由task_struct来管理 -任务ID,有pid,tgid -PID &TPID区别 getpid获取的是进程描述符task_struct的tgid(thread group identifier),而pid(process identifier)是系统管理所有进程的id 信号 阅读全文

11线程

2019-05-12 20:40 by JaPer, 186 阅读, 0 推荐, 收藏, 编辑
摘要:进程是资源分配的基本单位,线程是 CPU 调度的基本单位;对于任何一个进程来讲,即便我们没有主动去创建线程,进程也是默认有一个主线程的。 一个普通线程的创建和运行过程: 线程的数据。分为三类 栈的大小可用命令 ulinit -a 查看。 默认线程栈大小为 8192(8MB) ,可使用ulimit - 阅读全文

进程

2019-05-12 20:33 by JaPer, 191 阅读, 0 推荐, 收藏, 编辑
摘要:我们在Windows上写的程序,会被保存成.h或者,c的文件。会让人以为这是某种有特殊格式的文件,但是这些文件只是普通的文本文件,因此在Linux上,我们用Vim来创建并编辑一个文件就可以了。 如何通过写代码使用系统调用创建一个进程: .安装开发套件 yum -y groupinstall "Dev 阅读全文

进程数据结构

2019-05-12 20:24 by JaPer, 653 阅读, 0 推荐, 收藏, 编辑
摘要:在 Linux 里面,无论是进程还是线程,到了内核里面,我们统一都叫任务 task ,由一个统一的结构 task_struct 进行管理;内核中通过链表串起 task_struct . 任务 ID task_struct 里面涉及任务 ID 的,有 pid tpid 和 group_leader: 阅读全文

系统调用

2019-05-04 22:11 by JaPer, 845 阅读, 0 推荐, 收藏, 编辑
摘要:glibc 对系统调用的封装 在用户态进程里调用open函数 【 int open(const char *pathname, int flags, mode_t mode) 】 在glibc 源代码中有个文件 syscalls.list , 里面咧着所有glibc 的函数对应的系统调用。 另外还有 阅读全文

内核初始化

2019-04-27 23:44 by JaPer, 728 阅读, 0 推荐, 收藏, 编辑
摘要:内核启动的入口函数 start_kernel() {init/main.c配置文件} , 里面有XXXX_init的初始化函数 1)在操作系统中有个创始进程,set_task_stack_end_magic(&init_task)。 有一个参数 init_task 定义是struct task_st 阅读全文