进程(上篇):进程与操作系统
------------学习是为了养成,不是致富
目录
(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发送信号,能够将其终止。
进程上篇的内容也就完啦,希望对诸位有帮助。
祝你好运~
进程(上篇):进程与操作系统相关推荐
- linux 进程管理 ppt,linux操作系统-进程管理和打印管理.ppt
<linux操作系统-进程管理和打印管理.ppt>由会员分享,可在线阅读,更多相关<linux操作系统-进程管理和打印管理.ppt(25页珍藏版)>请在装配图网上搜索. 1.进 ...
- 4 操作系统第二章 进程管理 进程控制、通信
文章目录 1 进程控制 1.1 进程控制 1.2 进程控制实现 1.3 进程创建 1.4 进程终止 1.5 进程阻塞与唤醒 1.6 进程切换 1.7 进程控制小结 2 进程通信 2.1 共享通信 2. ...
- 3 操作系统第二章 进程管理 进程定义、特征、组织、状态与转换
文章目录 1 进程的定义和特征 2 进程的组织 3 进程的状态与转换 3.1 进程的状态 3.2 进程状态转换 1 进程的定义和特征 引入进程的原因 为了使程序能够并发执行,并且可以对并发执行的程序加 ...
- 操作系统学习笔记02【进程控制——进程互斥的硬件实现方法】【自用】
1.进程控制 什么是进程控制? 如何实现进程控制: 为了避免把某一进程pbc从一个队列转移到另一个队列,但是并没有把pbc内的状态标志改为新的对应状态,从而导致pcb的状态标志与实际所处队列不一样这一 ...
- 面试-操作系统-进程管理-进程-进程调度-死锁
文章目录 ==概念== 备注 简单说下你对并发和并行的理解? 同步.异步.阻塞.非阻塞的概念? 操作系统概念? 一个程序从开始运行到结束的完整过程,你能说出来多少? 用户态和内核态是如何切换的? 什么 ...
- 进程、线程等操作系统基础知识
今天在班级群里面水群时出现了一个严重的错误,然后就和老师发生了较为激烈的辩论,最后却发现我和老师的观点根本就不是针对同一个问题的,而我确实有一个知识点错了,收获很大,下面我也会提出这个知识点.平时和老 ...
- 【操作系统】进程及进程的基本状态及转换图
文章目录 前言 一.进程的定义及特征? 1.进程的定义 2.进程的特征 3.进程和程序的区别 二.进程的基本状态及转换 1.进程的三种基本状态 2.三种基本状态的转换 3.五种基本状态及转换 4.挂起 ...
- Linux 进程及进程之间的通信机制——管道
参考: LInux C编程从初学到精通 电子工业出版社 Linux 进程 Linux 进程简介 Linux是一个多用户多任务的操作系统,多用户是指多个用户可以在同一时间使用同一台计算机系统:多用户是指 ...
- Linux进程及进程管理命令
Linux进程基础 1进程概念 1.1程序与进程 1.2进程的状态 1.3线程 1.4进程生命周期 1.5虚拟内存 2进程管理工具 2.1pstree 2.2ps 2.3pgrep 2.4kill.p ...
最新文章
- 基于cookie的SSO单点登录系统
- php 0行,php – 如果返回0行,MySQL返回结果
- FastReport.NET 中使用二维码
- Oracle资源管理器(二)-- 创建和使用数据库资源计划
- Extjs4.1:模式窗口的设置
- rust房屋建造蓝图_都说蓝图,而不是白图、红图,你知道为什么?
- 切换图片 ImageSwitcher
- Codeforces Round #772 (Div. 2) C. Differential Sorting(思维+构造)
- php alias 报错,PHP: class_alias - Manual
- java海康摄像头添加人脸_java及opencv实现调用本地摄像头、网络摄像头完成人脸检测、人脸收集、人脸识别、性别识别...
- tableau连接Mysql出现的密码验证 cannot be loaded
- [Python]跟着代码去学习---二维码1:批量生成二维码
- python中transform_Python rendering.Transform方法代码示例
- fatal: You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you
- 数学之美-读书笔记6-10章
- Spring Security详细讲解(JWT+SpringSecurity登入案例)
- 【REST系列】详解REST架构风格 —— 带你阅读Web发展史上的一个重要技术文献
- linux 换一个路径存储新的挂载nas盘
- git ssh远程登录
- 到底什么是叶脊网络?