Linux系统课程—day1 笔记

Linux 最常见的知识点。
在Day 1

  • Stat

     显示文件或文件系统的详细信息·
     	比l s输出的信息更详细
    
  • Dup2/Fcntl

     dup复制文件描述符
    
  • 程序和进程-并行和并发

     并发:单核cpu 分成若干个时间碎片,多个进程轮询使用cpu的时间碎片
     并行:多核cpu,单个进程可以同时利用多个cpu的资源
    
  • pcb

     进程控制块,用于维护进程的各种信息和数据,分为内核区和用户数据区
     	内核区
     		Pid等信息
     	用户区
     		栈
     		堆
     		代码段
     		未初始化的变量/已经初始化的变量
     		动态库加载区
     		Env环境参数
     		命令行参数
    
  • 进程状态的切换

     初始态
     	进程被fork的时间非常短
     就绪
     	有执行资格,没有执行权,等待CPU
     执行
     	有执行资格,有执行权,获得了CPU
     挂起
     	没有执行资格,没有执行权
     		等待拥有执行资格,等待CPU
     终止
     	进程结束
    
  • fork函数

     创建子进程
     	返回值有两个值
     		父进程:返回子进程的pid
     		子进程:返回0
     父子进程的内容,除了pid,其他的一模一样
     	刚fork之后,两个地址空间用户区数据完全相同
     	后续进行了其他不同的操作后,各个进程地址空间的数据是完全独立的
    
  • 循环创建多个子进程

     想要创建确定数量的子进程,需要使用break
     子进程执行代码的位置上从父进程fork出子进程之后的代码开始
    
  • ps/kill

     Ps
     	$ps aux | grep ‘’
     	查询进程
     Kill
     	Kill -9 
     		终止一个进程
     		-9 = -SIGKILL
    
  • 进程间的数据共享

     如果多个进程对物理内存的变量只进行读操作,则互不影响
     如果有写操作,则写的是副本
    

    进程间是否共享全局变量

  • exec函数族

     fork子进程后,子进程往往调用exec函数以执行另一个程序,该进程完全由新程序代换,新程序从main函数开始执行
     	简言之,用fork创建新进程,exec函数执行新程序
     该进程的pid并不变
     exec只是用另一个新程序替换了当前进程的正文/数据/堆/栈段
     	有六种不同的exec函数
    
  • 孤儿进程和僵尸进程

     孤儿进程
     	没有父进程的进程是孤儿进程,孤儿进程会被init领养,成为一个准守护进程(后台执行)
     		守护进程是脱离终端子后台执行的进程,随系统启动,其父进程(ppid)通常是init进程
     		守护进程的几个特征
     			后台运行
     			成为 process group leader
     			成为session leader
     			fork一次或者两次
     			chdir到/
     			umask
     	系统进程init会自动收养任何孤儿进程
     僵尸进程
     	父进程或者,但是不给子进程收尸(wait/waitpid), 子进程就会变成僵尸进程
     	当子进程退出时,父进程需要wait/waitpid系统调用来读取进程的exit status,然后子进程被系统回收
     	如果父进程没有wait,则子进程将成为僵尸进程,内核会释放这个子进程的所有资源,但子进程中进程表中仍然有一个它的pcb,记录pid和退出状态等信息,导致pid一直被占用
     		系统能使用的pid数量是有限的,如果僵尸进程太多,则无法新启进程
     			很多能重启 的服务就是用wait/waitpid实现的
    
  • wait/waitpid函数回收子进程资源

     waitpid会暂时停止目前进程的执行,直到有信号来或者子进程结束
    

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值