热度 18
2015-3-6 23:10
1030 次阅读|
0 个评论
进程:进程是一个具有独立功能的程序的一次运行活动。 进程特点: 动态性 并发性 独立性 异步性 进程ID: 进程ID(PID):标识进程的唯一数字 父进程的ID(PPID) 启动进程的用户ID(UID) 进程互斥:进程互斥是指当有若干进程都要使用某一资源时,但该资源在同一时刻最多允许一个进程使用,这时其他进程必须等待,直到占用该资源者是犯了该资源为止。如:大家去买火车票的时候,只有一个窗口。必须要等待自己前面的人买完后自己才能买票。 临界资源:操作系统中将同一时刻只允许一个进程访问的资源称为临界资源。 临界区:进程中访问临界资源的那段程序代码称为临界区。为实现对临界资源的互斥访问应保证诸进程互斥地进入各自的临界区。 进程同步:一组进程按一定的顺序执行的过程称为进程间的同步。具有同步关系的这组进程称为合作进程,最有名的是如下图所示的生产者和消费者进程, 进程调度:按一定算法,将一组待运行的进程中选出一个来占有CPU运行。 在操作系统中,常见的调度算法有: 先来服务 短进程优先调度 高优先级优先调度 时间片轮转法 在有了等待运行的进程和调度算法后,接下来需要讨论的问题是:什么时候调度? 按照调度时机,调度可分为:抢占式调度、非抢占式调度 死锁:多个进程因竞争资源形成一种僵局,导致这些进程都无法继续往前直行。 4.0 获取进程ID 4.0.1 函数名 getpid 4.0.2 函数原形 pid_t getpid(void); 4.0.3 函数功能 获取进程的PID 4.0.4 所属头文件 sys/types.hunistd.h 4.0.5 返回值 返回调用进程的ID 4.0.6 参数说明 无参数 4.1 创建进程 4.1.1 函数名 fork 4.1.2 函数原形 pid_t fork(void); 4.1.3 函数功能 创建进程 4.1.4 所属头文件 unistd.h 4.1.5 返回值 成功:在父进程中返回子进程的PID,在子进程中返回的是0 失败:-1 4.1.6 参数说明 无参数 4.2 创建进程 4.2.1 函数名 vfork 4.2.2 函数原形 pid_t vfork(void); 4.2.3 函数功能 创建一个子进程,并阻塞父进程 4.2.4 所属头文件 sys/types.h unistd.h 4.2.5 返回值 成功:在父进程中返回子进程的PID,在子进程中返回的是0. 失败:-1 4.2.6 参数说明 无参数 4.3 进程等待 4.3.1 函数名 wait 4.3.2 函数原形 pid_t wait(int *status); 4.3.3 函数功能 挂起调用它的进程,直到其子进程结束 4.3.4 所属头文件 sys/types.h sys/wait.h 4.3.5 返回值 成功:返回终止的那个子进程的ID 失败:-1 4.3.6 参数说明 status:如果status不是一个空指针,则终止进程的终止状态就存放在他指向的单元内。如果不关心终止状态,则可将该参数指定为空指针。 4.4 执行程序 4.4.1 函数名 execl 4.4.2 函数原形 int execl(const char *path, const char *arg, ...); 4.4.3 函数功能 运行可执行文件 4.4.4 所属头文件 unistd.h 4.4.5 返回值 成功:不返回 失败:才返回 4.4.6 参数说明 path:要运行的可执行文件的路径 arg:可执行文件运行所需要的参数