初识进程

进程基本概念

课本概念:程序的一个执行实例,正在执行的程序等【跑起来的一些程序】
内核观点:担当分配系统资源(CPU时间,内存)的实体。
【双击运行一个程序的时候就创建了一个进程】

查看进程

ps相当于任务管理器,能够查看系统上都有哪些进程
  • 在Linux下敲ps默认只能看到当前用户的进程
    在这里插入图片描述
  • 要想查看Linux操作系统下所有的进程敲ps aux
    在这里插入图片描述
  • ps aux | less配合less对查看结果进行翻页和其他操作
  • ps aux | grep[进程名]查看匹配的进程【此时会看到自己要查看的进程和grep [进程名],这两个进程。敲下的命令,在命令执行过程中,也是一个进程

进程vs可执行程序
进程和可执行程序没啥关联
进程和可执行文件不是一个东西,写一段代码里面搞一个死循环,然后运行起来可执行文件,查看ps,发现程序在运行,然后,我们删掉可执行程序文件,再ps发现程序还在不停的跑
说明进程和可执行程序不是一个东西

重点
站在操作系统的角度看,首先在外存上编译生成了一个可执行程序,他是一个可执行文件,然后双击它或者./test的时候操作系统就会把可执行文件里的内容【可执行文件里都有代码,内存,等…】加载数据和代码到内存中,此时内存中就有了一份代码和数据,同时内存中创建一个test进程,由该进程管理这些数据,此时把外存上这个可执行文件干掉,不影响内存中的东西。cpu再去执行内存代码里面的while(1)这个循环

进程是操作系统中的一个概念,他和内存中的一些数据密切相关,换句话说,只要创建了进程就要分配一定的内存空间

进程的管理(操作系统内核负责管理)

1.描述进程(PCB进程控制块——>就是一个结构体【task_struct】)
【PCB针对通用的情况,他就是任何系统上说的描述进程的进程控制块,而task_struct只针对Linux(类似媒婆和王婆)】
task_struct是一个很大的结构体,包含很多内容

核心包含:
1.进程标识符(pid)
2.内存指针(告诉进程代码/数据都在内存的哪个部分)

剩下的内容有一个共同特点:都在围绕**进程的调度**【见下面】进行

3.进程状态【见下面】
4.优先级【优先级和进程状态一样都是为进程的调度服务的】:数字,表示这个进程是先被调度执行还是后被调度执行,敲top指令【重要】,看到PR【优先级】(边上还有一列NI(nice)优先级的修正值)PR+NI=>最终的PR数字越小,优先级别越高[最终进程执行的优先级还是要靠调度器来决定的,通过指令可以调整nice,宏观上往往看不出来效果] 【权限能不能的问题,权限是能,但是分先后调度的问题】
【系统负载load,可以用top查看】
5.上下文(寄存器
保存上下文,就是把CPU寄存器的内容保存到内存中;
恢复上下文,就是把内存中的寄存器的值恢复到CPU;

【CPU可能有几十个寄存器,这些寄存器会在进程切换的时候被保存下来,这些寄存器也就相当于当前进程执行到某一状态的一个执行结果,类似于游戏存档;PC指针(寄存器):接下来要去算;进

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值