Linux----进程概念
程序 : 程序指的是一系列有逻辑, 有顺序结构的指令.
进程 : 进程从两个角度来说:
1 用户角度: 进程从用户角度来说就是运行中的程序
2 操作系统的角度: 进程是操作系统对运行中程序的描述信息, 叫做进程描述符(程序控制块)简称PCB
PCB : 在Linux下PCB指的是在内核中的task_struct 结构体, 这个结构体中包含的就是相关程序的基本信息
task_struct的基本信息如下:
1 程序计时器: 程序中即将被执行的下一条指令的地址
2 上下文数据: 进程执行时处理器的寄存器中的数据
3 内存指针: 包括程序相关代码和进程相关数据的指针, 还有和其他进程共享的内存块的指针
4 记账信息: 可能包括处理器的时间总和, 使用的时钟总和, 时间限制,记账号等
5 进程的状态: 任务状态, 退出代码 退出信号等
6 优先级: 相对于其他进程的优先级
7 进程标识符PID: 描述本进程的唯一标识符,用来区别其他进程
查看进程的指令
**ps aux 或者 ps -ef **配合 |grep使用, 来查看所有进程或者单个进程的基本信息

进程创建
通过 fork() 实现一个进程的创建
fork()接口的实现原理是子进程通过复制父进程PCB中大部分的数据创建自己的PCB(内存指针,上下文数据,程序计数器) . 因此两个父子进程代码共享, 数据独有
返回值:判断是否创建进程成功, 分流父子进程
父进程: 返回的是子进程的 pid > 0
子进程: 返回的是0;
僵尸进程
僵尸进程时处于僵死态的进程
产生原因 : 父进程先于子进程退出 , 退出原因(返回值)保存在PCB中, 操作系统检测到进程退出后, 通知父进程, 但是父进程可能并没有关注子进程的退出, 这时候操作系统不能随意释放子进程的资源(因为父进程会孤关注子进程的死亡原因), 因此子进程就处于退出但是资源并没有完全释放的状态(僵死状态)
危害: 资源泄露, 新进程无法创建
解决方法 : 杀死父进程(退出原因的保存已经毫无意义)
孤儿进程
父进程先于子进程退出 (父进程退出后子进程会跑到后台运行) ,子进程被init进程收养 , 到后台运行.
优先级
优先级指的是一个层序划分–决定CPU资源的优先分配权
查看指令 : ps -l
PRI: PRI的值越小代表优先级越高
在Linux下优先级的调整是通过设置nice值进行的: PIR(new)=PIR(old)+nice
nice的取值范围为-20~19, 一共40个级别(进程的nice值不是进程的优先级.,但是他影响进程的优先级)
指令 :无锡妇科医院××× http://wapyyk.39.net/wx/zonghe/fc96e.html
程序启动前修改nice值 nice -n 5 ./test
调整已经存在的进程 renice -5 -p 5200 //调整进程pid为5200的进程
进程的竞争性: 进程之间具有竞争性, 竞争资源
进程的独立性: 进程之间应具备独立性, 保证进程稳定性
并发: 进程在CPU上切换调度运行
并行: CPU资源足够, 进程就可以同时运行
虚拟地址空间和页表(分页式管理)
C / C++中的地址都是由虚拟地址空间, 虚拟地址空间在内核中就是一个结构体
mm_struct
通过虚拟地址访问;
物理地址与虚拟地址都是分页式的内存管理 页号 : 变量在虚拟地址中对应的存储位置(因为地址大小是10的20次方 , 所以页号的大小一共有20位), 因此一个虚拟地址中的前20位就是这个变量所对应的页号. 页内偏移 : 因为一个页面的大小是 4k 的,所以在一个页面上会存储多个变量的信息 . 而虚拟地址剩下的位就是存的这个变量在这个页面上的位置 页表(存储的就是页面信息) : 因此页表也很大, 也是从0开始排布 假设虚拟地址的页面为1, 则他指向也标志中1号页面的位置, 而页表中1号位置中所存储的就是这个虚拟地址的访问权限以及物理地址的页面页号 , 再将虚拟地址的页内偏移物理页面页号相结合 , 最后形成物理地址
转载于:https://blog.51cto.com/14335413/2396450
相关文章:

codecheck
codecheck scan-build: clang-tools集成的静态检查工具, 使用clang static analyzer进行静态检查,使用方便 https://clang-analyzer.llvm.org/scan-build.html https://manpages.ubuntu.com/manpages/bionic/man1/scan-build.1.html CodeChecker: 爱立信推出的静…

ubuntu安装chrome浏览器
PPA方法,免FQ,否则,你得FQ下载chrome,你Firefox VPN配置好了吗!!! wget -q -O - https://raw.githubusercontent.com/longhr/ubuntu1604hub/master/linux_signing_key.pub | sudo apt-key add s…

java中的注解(二)
今天我继续来介绍java中的注解。注解与接口和类不同的是注解是不允许继承的,但是注解中有一个和继承有关的元注解:Inherited。如果我们在定义注解时候加上这个元注解那么我们就可以在子类中监测到该注解的存在。 Target(ElementType.TYPE) Inherited Ret…

【C++】random随机数与【C++11】/rand()和srand()的用法
文章目录随机数1. c 11 random随机数的使用(推荐使用)1.11.21.31.42.1 C中随机函数rand()和srand()的用法(老本版)2.2 限制随机数的范围随机数 C 提供了一组函数以生成和使用随机数字。随机数字就是从一组可能的值中进行随机选择…

快速区域积分直方图实现
void cacHOGinCell(Mat& HOGCellMat,Rect roi,std::vector<Mat>& integrals) {// 实现快速积分HOGint x0 roi.x,y0 roi.y;int x1 x0 roi.width;int y1 y0 roi.height;for(int i 0; i < NBINS; i){// 根据矩阵的上下左右坐标计算Mat integra…

Resultset获取行数和列数
为什么80%的码农都做不了架构师?>>> 在Java中,获得ResultSet的总行数的方法有以下几种。 第一种:利用ResultSet的getRow方法来获得ResultSet的总行数 Statement stmt con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,Re…

object.create()
语法: Object.create(proto, [propertiesObject]) //方法创建一个新对象,使用现有的对象来提供新创建的对象的proto。 参数:proto : 必须。表示新建对象的原型对象,即该参数会被赋值到目标对象(即新对象,或说是最后返回…

codecheck_use_record
文章目录Step 1: Integrate CodeChecker into your build systemStep 2: Analyze your codeStep 3: Run the analysisStep 4: View the analysis results in the command lineStep 5: Hint: You can do the 1st and the 2nd step in one round by executing checkstep 6: Expor…

centos6.5 rsync+inotify同步配置笔记
以两台服务器为例: 主服务器: 192.168.1.100 从服务器: 192.168.1.101 1.安装rsync (主服务器与从服务器同时安装) 使用xinetd管理rsync yum install rsync xinetd 设置开机启动 vi /etc/xinetd.d/rsync ... 修改为 disable no ... 启动xin…

HOG 特征计算实现
// 获取HOG直方图 cv::Mat getHog(Point pt,std::vector<Mat> &integrals) {// 判断当前点的位置是否符合条件 if( pt.x - R < 0 ||pt.y - R < 0 ||pt.x R > integrals[0].cols ||pt.y R > integrals[0].rows ){return Mat();}// 直方图Mat hist(Size(…

Spring+SpringMVC+Mybatis整合
一、简单测试工程搭建1、Mybatis所需要的的jar包(包含数据库驱动包和相关的日志包)、SpringMVC和Spring的jar包2、然后构建一个基本的工程,这里我们使用mapper代理的方式进行Mybatis的编写,关于mapper代理请参考Mybatis简单入门中…

【Tools】Markdown数学符号公式(史上最全公式表)
Markdown数学符号&公式 文章目录Markdown数学符号&公式1. 希腊字母表2. 希腊字母3. 数学符号表4. 数学符号5. 数学符号补充表6. 数学符号补充1. 希腊字母表 符号代码符号代码α\alphaα\alphaA\AlphaA\Alphaβ\betaβ\betaB\BetaB\Betaγ\gammaγ\gammaΓ\GammaΓ\gam…

Editplus下载、安装并最佳配色方案(强烈推荐)
不多说,直接上干货! Editplus下载 第一步:进入官网 https://www.editplus.com/ 第二步:下载 https://www.editplus.com/download.html Editplus安装 我这里,直接以一个压缩包来安装,需要的,请…

MySQL数据库开发规范-EC
最近一段时间一边在线上抓取SQL来优化,一边在整理这个开发规范,尽量减少新的问题SQL进入生产库。今天也是对公司的开发做了一次培训,PPT就不放上来了,里面有十来个生产SQL的案例。因为规范大部分还是具有通用性,所以也…

操作系统与内存管理
操作系统内存管理 文章目录操作系统内存管理1. 虚拟地址空间2. 内存地址空间含义及分配3. 虚拟内存诞生的前世与今生?3.1 内存管理的好处3.2 **内存管理实现总体策略**4. 不同进程如何划分内存地址空间?5 内存分配与回收5.1 buffer和cache5.2 malloc背后…

圆形 LBP 特征
template <typename _Tp> staticinline void elbp_(InputArray _src, OutputArray _dst,int radius, int neighbors) {// 得到数据矩阵Mat src _src.getMat();// 输出矩阵_dst.create(src.rows-2*radius, src.cols-2*radius, CV_32SC1);Mat dst _dst.getMat();// 初始化…

40个Java多线程问题总结
(转) 这篇文章作者写的真是不错 40个问题汇总 1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所…

SLAM十四讲笔记1
文章目录ch02 初识SLAMch02-01 经典视觉SLAM框架ch02-02 SLAM问题的数学表述ch03 三维空间刚体运动ch03.01 旋转矩阵:点和向量,坐标系01 向量a在线性空间的基[e1,e2,e3][e_1,e_2,e_3][e1,e2,e3]下的坐标为[a1,a2,a3]T[a_1,a_2,a_3]^T[a1,a2,a3]T.02 向量…

12、OpenCV实现图像的空间滤波——图像平滑
1、空间滤波基础概念 1、空间滤波基础 空间滤波一词中滤波取自数字信号处理,指接受或拒绝一定的频率成分,但是空间滤波学习内容实际上和通过傅里叶变换实现的频域的滤波是等效的,故而也称为滤波。空间滤波主要直接基于领域(空间域…

计算 LBP 特征
#include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/features2d/features2d.hpp> #include <opencv2/features2d/features2d.hpp> // 计算原始LBP特征 cv::Mat OLBP(cv::Mat& srcImage) {const int nRows …

三维重建【四】-------------------结构光 三维重建----论文调研
1. 动态目标实时三维重建-结构光方案 动态目标 三维重建 Stripe boundary codes for real-time structured-light range scanning of moving objects 我们提出了一种新的实时结构光扫描方法。在分析现有结构光技术的基本假设之后,我们基于编码投影条纹之间的边界&…

APP开发定制
app是什么意思? APP,application的简称,是智能手机的第三方应用程序,常见的有微信、手机qq、今日头条、手机支付宝、腾讯视频、微店等,随着智能手机和ipad等移动终端设备的普及,人们逐渐习惯了使用APP客户端上网的方式…

Haar 特征提取
double HaarExtract(double const ** image ,int type_, cv::Rect roi) {double value;double wh1, wh2;double bk1, bk2;int x roi.x;int y roi.y;int width roi.width;int height roi.height;switch (type_){// Haar水平边缘case 0: // HaarHEdgewh1 calcIntegral(image…

awk的基本⽤法
awk的基本⽤法 awk是报告⽣成器,格式化⽂本输出,有多种版本。centos中的是gawk即GNU awk版本。 awk⼯作原理:第⼀步:执⾏BEGIN{action;...}语句块中的语句。第⼆步:从⽂件或标准输⼊(stdin)读取…
视音频数据处理入门:RGB、YUV像素数据处理【转】
转自:http://blog.csdn.net/leixiaohua1020/article/details/50534150 视音频数据处理入门系列文章: 视音频数据处理入门:RGB、YUV像素数据处理 视音频数据处理入门:PCM音频采样数据处理 视音频数据处理入门:H.264视频…

SVO(SVO: fast semi-direct monocular visual odometry)
SVO(SVO: fast semi-direct monocular visual odometry)翻译 文章目录SVO(SVO: fast semi-direct monocular visual odometry)翻译1、介绍2、系统概述3、符号4、运动估计4.1、 基于稀疏模型的图像对齐4.2、 通过特征对齐松弛4.3、…

MSER 候选车牌区域检测
#include "opencv2/highgui/highgui.hpp" #include "opencv2/features2d/features2d.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <iostream> // Mser车牌目标检测 std::vector<cv::Rect> mserGetPlate(cv::Mat srcImage…

从HelloWorld看Knative Serving代码实现
为什么80%的码农都做不了架构师?>>> 摘要: Knative Serving以Kubernetes和Istio为基础,支持无服务器应用程序和函数的部署并提供服务。我们从部署一个HelloWorld示例入手来分析Knative Serving的代码细节。 概念先知 官方给出的这…

svo_note
SVO论文笔记1.frame overviews2. Motion Estimate Thread2.1 Sparse Model-based Image Alignment 基于稀疏点亮度的位姿预估2.2 Relaxation Through Feature Alignment 基于图块的特征点匹配2.3 Pose and Structure Refinement3 Mapping Thread3.1 depth-filter3.2 初始化参考…

Druid 配置 wallfilter
这个文档提供基于Spring的各种配置方式 使用缺省配置的WallFilter <bean id"dataSource" class"com.alibaba.druid.pool.DruidDataSource" init-method"init" destroy-method"close">...<property name"filters" v…