C++学习之路--8

1、什么是程序?
编译好的二进制文件
2、什么是进程?
运行着的程序
3、区别:
程序占用磁盘,不占用系统资源,内存占用系统资源,一个程序对应多个进程,一个进程对应一个程序,进程有生命周期,程序没有生命周期
4、单通道程序和多通道程序
微观上串行,宏观上并行
5、进程的切换
挂起,运行,就绪,停止
6、MMU的作用
虚拟内存和物理内存的映射,修改内存访问级别 0最高级,用户空间映射到物理内存是独立的
7、PCB进制控制块
进程ID,进程的状态、虚拟地址空间信息,umask掩码,文件描述符表,用户ID和组ID,会画和进程组。
8、环境变量
key=value
9、getenv环境变量函数
10、fork进程
pid_t fork() 创建一个进程 返回值:失败 -1 成功两次返回 父进程返回 子进程的ID,子进程返回0
getpid() 获得pid,进程id ,获得当前进程
getppid()获得当前进程父进程id
11、查看进程信息
ps
- ps aux 查看所有进程
- ps ajx 可以追溯进程间的血缘关系
kill
- 给进程发送一个信号
- kill -9 pid 停止信号 sigkill
- kill -l 查看所有可以发送的信号
12、进程共享
读时共享,写时复制
13、族函数
int execl
int execlp
14、孤儿进程和僵尸进程
孤儿:父进程挂掉,子进程被INIT领养
僵尸:子进程挂掉,父进程没有回收
15、子进程回收 pid_t wait(int *status) 阻塞等待,回收子进程资源,查看死亡原因 status传出参数,知道子进程死亡原因 返回值 成功返回终止ID,失败返回-1.
16、pid_t waitpid(pit_t pid, int *status, int options)

  • pid
    • < -1 组id
    • -1 回收任意
    • 0 回收和调用进程组id 相同组内的子进程
    • 0 回收指定的id

  • options
  • 返回值
    • 设置了WNOHANG,没有子进程退出返回0,有子进程成功返回PID,失败返回-1.
      17、

猜你喜欢

转载自blog.csdn.net/weixin_43615373/article/details/90576444