登录过程
终端登录
如上图,init从/etc/ttys中读取终端信息,对每个允许登录的终端,都fork子进程,并执行getty。getty打开终端设备,执行login:
execle(“/bin/login,“login”, “-p”, username, (char *)0, envp)
如上图,login进行用户名密码验证,同时还会进行切换到用户主目录/修改...
分类:
系统相关 时间:
2015-07-30 23:32:09
阅读次数:
270
5.1 作业对象(1)什么是作业对象①进程的父子关系只存在于创建的子进程的那一刻,Windows并不一直维护着这种父子关系,这使得管理进程并不是件容易的事。②作业对象是用于将一组进程作为一个管理单元的内核对象,本质上可以理解为其实就是进程池对象,可将作业对象看作是进程的容器。③作来对象可以用来限制一...
分类:
系统相关 时间:
2015-07-30 22:55:08
阅读次数:
373
分析Linux内核创建一个新进程的过程进程描述
进程描述符(task_struct)用来描述进程的数据结构,可以理解为进程的属性。比如进程的状态、进程的标识(PID)等,都被封装在了进程描述符这个数据结构中,该数据结构被定义为task_struct
进程控制块(PCB)是操作系统核心中一种数据结构,主要表示进程状态。
进程状态fork()fork()在父、子进程各返回一次。在父进程中返回子进程的 p...
分类:
系统相关 时间:
2015-07-29 14:09:04
阅读次数:
245
新进程的执行源于以下前提:
- dup_task_struct中为其分配了新的堆栈
- 调用了sched_fork,将其置为TASK_RUNNING
- copy_thread中将父进程的寄存器上下文复制给子进程,保证了父子进程的堆栈信息是一致的
- 将ret_from_fork的地址设置为eip寄存器的值
最终子进程从ret_from_fork开始执行...
分类:
系统相关 时间:
2015-07-29 14:08:57
阅读次数:
198
头文件: #include
pid_t fork (void);
1. 创建一个子进程,失败返回-1。
2. 调用一次,返回两次。分别在父子进程中返回子进程的PID和0。利用返回值的不同,可以分别为父子进程编写不同的处理分支。
#include
#include
int main (void) {
printf ("%u进程:我要调用fork()了...\n", getpid (...
分类:
其他好文 时间:
2015-07-29 12:18:11
阅读次数:
112
服务器,客户端都是父进程、子进程分别负责发送、接收字符串。 另外使用了信号函数来发送和接收处理信号,比如当子进程结束时,传递一个信号给父进程,然后父进程会执行信号处理函数。服务器端: 1 #include 2 #include 3 #include 4 #include 5 #include ...
分类:
其他好文 时间:
2015-07-29 00:47:19
阅读次数:
123
实现的功能:一次只能读取一行,客户端输入之后,一回车,马上字符串传到服务器端并显示在终端,然后服务器端将字符串又传回给客户端。 服务器端可以接收多个客户端的连接请求,并fork一个子进程来进行服务。(1)封装一个只能访问套接字描述符的readline函数(2)服务器端启动SO_REUSEA...
分类:
其他好文 时间:
2015-07-28 20:24:20
阅读次数:
130
前几篇博文中我已经介绍过进程的创建以及一些基本知识,这里就不再赘述,本篇博文我主要会涉及进程的终止细节以及父进程对子进程的监控,还有函数组exec()1.进程的终止(1)_exec()和exit()进程终止分俩中情况,一种是收到某种信号异常终止,另一种是调用_exit()正常退出#include
void _exit(int status);参数status保存了进程的终止状态,...
分类:
系统相关 时间:
2015-07-28 13:12:09
阅读次数:
173
概述
- 在linux 中,每个执行的程序都称为一个进程,每一个进程都分配一个ID号
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程,例如www服务器
- 每个进程都可能以两种方式存在的,前台与后台。所谓前台进程就是用户目前的屏幕上可以进行操作的,后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
- 一般系统的服务都是以后台进...
分类:
系统相关 时间:
2015-07-27 11:07:59
阅读次数:
129
在进程中运行新代码execX系列函数可以在当前子进程中运行新程序。当进程调用该系列任意一个函数时,该进程的用户空间资源完全由新程序替代。这些函数的区别:指示新程序的位置是使用路径还是文件名,若是文件名则在系统的$PATH环境变量所描述的路径中搜索该程序。 在使用参数时,是使用参数...
分类:
系统相关 时间:
2015-07-26 23:55:07
阅读次数:
213