------------学习是为了养成,不是致富

目录

(1)冯诺依曼体系

(2)操作系统(OS):

①概念:

②目的:

③管理:

(3)进程管理:

①什么是进程?

②如何对进程进行管理?

​编辑

③linux下的进程操作:

创建一个进程:

小结:


(1)冯诺依曼体系

计算机笔记本、服务器,大部分都遵守冯诺依曼体系。那么这个体系是什么呢?输入单元(设备): 键盘、鼠标、硬盘、摄像头……

处理器(CPU):运算、控制。

输出单元(设备):显示器、音响、网卡、硬盘……

为什么外设与cpu不直接交互,需要一个中间的过渡区(存储器)?

外设相对于cpu运算速率实在太低,受木桶效应的影响,最终会导致计算机效率的降低。

因此引入存储器,而存储器之所以能够提高 读取效率,其实质也在具有,预装数据的能力!

所以,我们将可执行程序(本质是文件,存放在硬盘(外设)中)双击运行,实质是把程序,加载到内存这样的说法,也就有了理论支持。

若干结论:

站在硬件角度&&数据层面上来说:Cpu 和内存打交道,内存和外设打交道。

①存储器就是内存。

②cpu不直接访问外设,而要和存储器发生交互。

③外设输入、输出数据也只能在存储器中进行。

④数据要处理,通过内存,预装加载在内存中。

对数据处理具有局部性原理(提高cpu读取命中率)。--------------->由操作系统完成

想想如下场景:

当我们打开qq 与朋友发送消息,数据是怎样流动,让我们双方都能看见呢?(硬件级别的交互)


(2)操作系统(OS):

①概念:

操作系统笼统来说,是一个基本的程序集合。其本质就是一款软件。

②目的:

目的是实现与硬件交互,管理软件资源,为用户提供一种良好的执行环境。

③管理:

对管理的认识,是弄懂操作系统如何进行管理的关键!

管理的本身,更重要的是在"理",也就是获取数据。

所以操作系统(OS)进行软硬件管理的方式是:先描述、再组织


以上仅仅是,为本篇讲进程进行的铺垫。

(3)进程管理:

①什么是进程?

一般概念:程序的一个执行实例,正在执行的程序等。

内核概念:担当分配系统资源(CPU时间,内存)的实体。

②如何对进程进行管理?

前面所讲,管理的重中之重,在于收集信息(获取数据),也就是描述。

在linux下,描述进程的结构体叫做: tast_struct,而课本上称为 PCB

如何进行组织?

为什么需要PCB?

PCB应该包含哪些字段?

1.pid,ppid 2.代码数据 3.上下文信息 4.优先级(!=权限,代表先后) 5.链接信息……

getpid()  getppid()  //------->获取进程的id,每个进程的标识符

③linux下的进程操作:

top、ps //命令查看

top:

ps:


创建一个进程:

进程现象:让这一行输出字符,一直打印。

mytest 在没执行程序时,是一个文件,放在磁盘,一旦进行运行起来,操作系统就会为先描述,在组织,创建进程块(PCB)。 如何证明呢?

//调用查看进程信息ps aux(ajx) | grep mytest | grep -v 'grep' //(不含)grep//如果需要引入进程信息 解释
ps aux | head -1 && ps aux | grep mytest | grep -v 'grep'
//在前面加个  head -1

此刻,我们就看到一个进程正在运行。并把它杀掉(终止)。

库中有两个函数(在前面提到过),可以获取进程的pid 以及ppid(父进程之后会讲,这里仅做了解)。

#include<unistd.h>getpid()  getppid();

获取进程的pid 和ppid;

但一个现象让我们看到,pid是随机的,但ppid始终只有一个。

//ajx(axj顺序可随机) 查看更详细的信息
ps ajx | head -1 && ps ajx | grep mytest | grep -v 'grep'


ps xja | head -1 && ps xja | grep 30413 | grep -v 'grep'

这也应证了,bash执行命令时,会创建子进程帮忙执行,这样子进程执行结果,不会影响自己。

所以当把bash  kill掉,端口命令行解释器 也就被干掉。


小结:

①任何可执行程序运行起来,都应遵循冯诺依曼体系,把代码、数据加载在内存中,再由cpu进行计算、封装,写回内存,被外设读到。

②每创建一个进程,操作系统会为之创建一个新的PCB(进程控制块),进行管理。

③每个进程创建可以用指令查看 其信息, ps\top, 用kill对某个已知进程的pid发送信号,能够将其终止。

进程上篇的内容也就完啦,希望对诸位有帮助。

祝你好运~

进程(上篇):进程与操作系统相关推荐

  1. linux 进程管理 ppt,linux操作系统-进程管理和打印管理.ppt

    <linux操作系统-进程管理和打印管理.ppt>由会员分享,可在线阅读,更多相关<linux操作系统-进程管理和打印管理.ppt(25页珍藏版)>请在装配图网上搜索. 1.进 ...

  2. 4 操作系统第二章 进程管理 进程控制、通信

    文章目录 1 进程控制 1.1 进程控制 1.2 进程控制实现 1.3 进程创建 1.4 进程终止 1.5 进程阻塞与唤醒 1.6 进程切换 1.7 进程控制小结 2 进程通信 2.1 共享通信 2. ...

  3. 3 操作系统第二章 进程管理 进程定义、特征、组织、状态与转换

    文章目录 1 进程的定义和特征 2 进程的组织 3 进程的状态与转换 3.1 进程的状态 3.2 进程状态转换 1 进程的定义和特征 引入进程的原因 为了使程序能够并发执行,并且可以对并发执行的程序加 ...

  4. 操作系统学习笔记02【进程控制——进程互斥的硬件实现方法】【自用】

    1.进程控制 什么是进程控制? 如何实现进程控制: 为了避免把某一进程pbc从一个队列转移到另一个队列,但是并没有把pbc内的状态标志改为新的对应状态,从而导致pcb的状态标志与实际所处队列不一样这一 ...

  5. 面试-操作系统-进程管理-进程-进程调度-死锁

    文章目录 ==概念== 备注 简单说下你对并发和并行的理解? 同步.异步.阻塞.非阻塞的概念? 操作系统概念? 一个程序从开始运行到结束的完整过程,你能说出来多少? 用户态和内核态是如何切换的? 什么 ...

  6. 进程、线程等操作系统基础知识

    今天在班级群里面水群时出现了一个严重的错误,然后就和老师发生了较为激烈的辩论,最后却发现我和老师的观点根本就不是针对同一个问题的,而我确实有一个知识点错了,收获很大,下面我也会提出这个知识点.平时和老 ...

  7. 【操作系统】进程及进程的基本状态及转换图

    文章目录 前言 一.进程的定义及特征? 1.进程的定义 2.进程的特征 3.进程和程序的区别 二.进程的基本状态及转换 1.进程的三种基本状态 2.三种基本状态的转换 3.五种基本状态及转换 4.挂起 ...

  8. Linux 进程及进程之间的通信机制——管道

    参考: LInux C编程从初学到精通 电子工业出版社 Linux 进程 Linux 进程简介 Linux是一个多用户多任务的操作系统,多用户是指多个用户可以在同一时间使用同一台计算机系统:多用户是指 ...

  9. Linux进程及进程管理命令

    Linux进程基础 1进程概念 1.1程序与进程 1.2进程的状态 1.3线程 1.4进程生命周期 1.5虚拟内存 2进程管理工具 2.1pstree 2.2ps 2.3pgrep 2.4kill.p ...

最新文章

  1. 基于cookie的SSO单点登录系统
  2. php 0行,php – 如果返回0行,MySQL返回结果
  3. FastReport.NET 中使用二维码
  4. Oracle资源管理器(二)-- 创建和使用数据库资源计划
  5. Extjs4.1:模式窗口的设置
  6. rust房屋建造蓝图_都说蓝图,而不是白图、红图,你知道为什么?
  7. 切换图片 ImageSwitcher
  8. Codeforces Round #772 (Div. 2) C. Differential Sorting(思维+构造)
  9. php alias 报错,PHP: class_alias - Manual
  10. java海康摄像头添加人脸_java及opencv实现调用本地摄像头、网络摄像头完成人脸检测、人脸收集、人脸识别、性别识别...
  11. tableau连接Mysql出现的密码验证 cannot be loaded
  12. [Python]跟着代码去学习---二维码1:批量生成二维码
  13. python中transform_Python rendering.Transform方法代码示例
  14. fatal: You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you
  15. 数学之美-读书笔记6-10章
  16. Spring Security详细讲解(JWT+SpringSecurity登入案例)
  17. 【REST系列】详解REST架构风格 —— 带你阅读Web发展史上的一个重要技术文献
  18. linux 换一个路径存储新的挂载nas盘
  19. git ssh远程登录
  20. 到底什么是叶脊网络?

热门文章

  1. 2020西山居暑假SEED训练营游戏开发
  2. 汇编语言--ARM汇编
  3. mybatis什么时候用的${}
  4. 进击高手【第四期】(bfs)
  5. SpringBoot——使用外置的Tomcat服务器
  6. python中hex,oct,chr,ord函数讲解
  7. ArcGIS基础实验操作100例--实验66符号图层的保存与加载
  8. 直流电动机的平衡方程式
  9. 计算机毕业设计springboot+vue基本微信小程序的透析耗材管理系统
  10. Java--入门指引