2018-2019-1 20165204 《信息安全系统设计基础》第七周学习总结

2018-2019-1 20165204 《信息安全系统设计基础》第七周学习总结

异常

  • 异常是异常控制流的一种形式,它一部分由硬件实现,一部分由操作系统实现。异常是控制流中的突变,用来响应处理器状态中的某些变化。

  • 异常的类别

进程和并发

  • 进程:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

  • 并发:在单核 CPU 系统中,系统调度在某一时刻只能让一个进程运行,虽然这种调度机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的进程让其运行的方式叫并发

进程创建和控制的系统调用及函数使用

fork

  • 函数作用:创建一个子进程
  • 函数形式:pid_tfork(void);
    pid_t vfork(void);(使用vfork创子进程时,不会进程父进程的上下文)

  • 返回值:
    [返回值=-1]子进程创建失败
    [返回值=0]子进程创建成功
    [返回值>0]对父进程返回子进程PID

exit

  • 函数作用:终止发出调用的进程

  • 形式:void exit(int status);

  • 说明
  1. exit返回信息可由wait系统函数获得
  2. 如果父进程先退出子进程的关系被转到init进程下

wait

  • 函数作用:使父进程与子进程同步,父进程调用后。进入睡眠状态,直到子进程结束或者父进程在被其他进程终止。

  • 形式:pid_twait(int *status)

           pid_t waitpid(pid_t pid ,int *status,int option)
  • 参数解释:
    status:exit是设置的代码
    pid:进程号
    option: WNOHANG|WUNTRACED

WNOHANG:,即使没有子进程退出,它也会立即返回
WUNTRACED:子进程进入暂停则马上返回,但结束状态不予以理会.

返回值:如果成功等待子进程结束,则返回子进程PID。后者为-1

waitpid

  • pid>0时,只等待进程ID等于pid的子进程,不管其它已经有多少子进程运行结束退出了,只要指定的子进程还没有结束,waitpid就会一直等下去.
  • pid=-1时,等待任何一个子进程退出,没有任何限制,此时waitpid和wait的作用一模一样.
  • pid=0时,等待同一个进程组中的任何子进程,如果子进程已经加入了别的进程组,waitpid不会对它做任何理睬.
  • pid<-1时,等待一个指定进程组中的任何子进程,这个进程组的ID等于pid的绝对值.

exec

  • 函数作用:以新进程代替原有进程,但PID保持不变

  • 形式: int execl(const char * path, const chararg, ...);
    int execlp(const char
    file, const chararg, ...);
    int execle(const char
    path, const chararg, ..., char const envp[]);
    int execv(const char * path, char constargv[]);
    int execvp(const char
    file, char constargv[]);
    int execve(const char
    path, char constargv[], char const envp[]);

猜你喜欢

转载自www.cnblogs.com/jph596299009/p/9940497.html