scheduler01

1. linux进程周期

就绪、运行、睡眠、停止、僵死

2. task_struct

struct task_struct {
    ...
    pid_t pid;
    struct mm_struct *mm;
    struct fs_struct *fs;
    struct files_struct *files;
    ...
};

struct mm_struct {
    ...
    struct vm_area_struct * mmap;
    pgd_t * pgd;
    ...
};

struct fs_struct {
    ...
    struct path root, pwd;
    ...
};

struct files_struct {
    ...
    struct fdtable fdtab;
    struct file * fd_array[NR_OPEN_DEFAULT];
    ...
};

task_struct形成 链表、树、哈希 来管理

2. 查看目前系统支持最多pid数量

3. 内存泄漏

僵死进程,资源已经释放,无内存泄漏,只存下 task_struct 供父进程查死亡原因

进程运行中,运行越久,内存消耗越多,即 发生内存泄漏

4. 停止/恢复进程与作业控制 cpulimit

ctrl + z : 暂停执行进程

fg/bg : 恢复进程执行

限制pid为10111进程的cpu使用率不超过20%

5. fork

$ vim fork1.c

$ vim fork2.c

$ vim life_period.c

Last updated