linux学习之进程篇1
来源:百度文库 编辑:神马文学网 时间:2024/04/28 18:56:43
linux学习之进程篇1
今天学习了看了下赵博那本书进程的一部分,搞懂了些东西,现总结如下:
1.进程的时间片
进程的时间片是由8053的时钟中断实现的,在内核初始化时将8053工作频率设置为100Hz,也就是说每隔10毫秒就发生一次时钟中断,然后由相应的时钟中断程序来实现,这个时钟中断程序名为_timer_interrupt(system_call.s),具体的实现函数是do_timer(),这个C函数在最后执行了sched.c中的schedule()函数。也就是说,每隔10ms执行一次任务切换函数。
2.fork()的实现
看完这个函数,刚才的程序问题也解决了。只可能打印一个This is header!而且是在父进程中实现的。当父进程执行到
fork()创建子进程时,父进程从fork()的下一条语句执行下去。子进程从fork()执行下去。父进程中的fork返回子进程ID,子进程中的fork返回0。
fork()是linux的系统调用。
执行流程如下:
fork() //定义在unistd.h
->sys_fork() //sys.h
->system_call0(int,fork) //定义在main.c
->_system_call //system.s
->find_empty_process(),copy_process() //fork.c
system_call0其中执行int $0x80,此语句将父进程的cs,eip入栈(这个不理解要去看汇编的int指令执行过程),后面它创建的子进程也是用的这个,这个就是为什么子进程也从fork执行了。_system_call是int $0x80的中断处理函数,这个是在sched_init()中的定义的。_system_call只执行两个函数find_empty_process(),copy_process()。第一个函数在task数组中查找一个空白项。找到后返回数组下标,也就是传说中的PID了。copy_process将这个空白任务数组分配内存,然后将父进程的cs,ip等进程上下文完全复制给它。再把这个新任务的状态设置为就绪态。最后返回这个PID。
这个就是创建进程的执行过程。
今天学习了看了下赵博那本书进程的一部分,搞懂了些东西,现总结如下:
1.进程的时间片
进程的时间片是由8053的时钟中断实现的,在内核初始化时将8053工作频率设置为100Hz,也就是说每隔10毫秒就发生一次时钟中断,然后由相应的时钟中断程序来实现,这个时钟中断程序名为_timer_interrupt(system_call.s),具体的实现函数是do_timer(),这个C函数在最后执行了sched.c中的schedule()函数。也就是说,每隔10ms执行一次任务切换函数。
2.fork()的实现
看完这个函数,刚才的程序问题也解决了。只可能打印一个This is header!而且是在父进程中实现的。当父进程执行到
fork()创建子进程时,父进程从fork()的下一条语句执行下去。子进程从fork()执行下去。父进程中的fork返回子进程ID,子进程中的fork返回0。
fork()是linux的系统调用。
执行流程如下:
fork() //定义在unistd.h
->sys_fork() //sys.h
->system_call0(int,fork) //定义在main.c
->_system_call //system.s
->find_empty_process(),copy_process() //fork.c
system_call0其中执行int $0x80,此语句将父进程的cs,eip入栈(这个不理解要去看汇编的int指令执行过程),后面它创建的子进程也是用的这个,这个就是为什么子进程也从fork执行了。_system_call是int $0x80的中断处理函数,这个是在sched_init()中的定义的。_system_call只执行两个函数find_empty_process(),copy_process()。第一个函数在task数组中查找一个空白项。找到后返回数组下标,也就是传说中的PID了。copy_process将这个空白任务数组分配内存,然后将父进程的cs,ip等进程上下文完全复制给它。再把这个新任务的状态设置为就绪态。最后返回这个PID。
这个就是创建进程的执行过程。
linux学习之进程篇1
linux学习之进程篇1
Linux进程间通信1
Linux进程
Linux 学习之道
Linux 学习之道
Linux 进程管理
LINUX守护进程介绍
Linux 进程管理
LINUX守护进程介绍
Linux命令学习之su命令
新手入门之——Linux学习基础
linux 线程 进程经典文章
Linux进程的层次关系
linux 2.6.23孤儿进程
linux 线程 进程经典文章
linux守护进程的编写
linux 开启 关闭 进程 tomcat
Linux中断处理之时钟中断 - linux中断处理 - Linux内核学习
新手入门之——Linux学习基础-Linux教程-Linux系统中文网
Linux下编程为什么多用进程少用线程-编程讨论之二
Linux-Android系统启动之INIT进程和system v init - guopeixin的专栏 - CSDN博客
Linux-Android启动之Init进程前传 - guopeixin的专栏 - CSDN博客
Linux 学习