0


Linux学习笔记(6)

文章目录

🍭Linux学习笔记(6)

本节对学习进行记录,而不进行完全的阐述

这篇文章很多地方博主讲的不清楚,因为我自己也还没理解透彻

仅作学习记录

🍭冯诺依曼体系结构

image-20220111232137788

🍊输入设备: 键盘、网卡、话筒

🍊存储器: 通常指的内存

存储器通常指的是内存,不考虑缓存,这里的CPU只能对内存进行读写,不能访问外设

🍊运算器和控制器 : CPU

🍊输出设备:显示器、网卡、音响

键盘、网卡、显示器等都可以被称为外设

内存:在这里插入图片描述

🍊先说结论:在冯诺依曼体系下,所有的设备都只能直接和内存打交道

解释:在冯诺依曼体系下,输入输出设备,CPU(控制器和运算器)都只能和内存进行交互,即外设输入或输出数据,也只能写入内存或者从内存中读取

原因:相对CPU来说,输入输出设备的速度是比较慢的,而CPU处理数据的速度很快,如果不经过内存,就会导致不能完全发挥CPU的性能,也即木桶效应

🍊如果让CPU直接访问外设,CPU会浪费大量的时间等待外设返回的数据,为了不让CPU闲着,就出现了内存,内存(存储器)的速度又远快于外设,当然是低于CPU的,所以就出现了外设的数据流都要先经过内存,由内存传给CPU处理,返回的数据当然还是在内存,再由内存传给输出设备这种情况。

内存的存在提高了CPU的效率

速度:CPU>存储器>输入输出设备

高速缓存一般不看,越上面的越靠近CPU越快,反之越慢

image-20220112124016845

qq开始甲和乙聊天开始,甲发消息, 数据流动的过程(冯诺依曼规定了硬件层面的数据流向

甲的键盘 ->甲电脑的内存 -> 甲的CPU -> 乙的网卡 ->乙电脑的内存->乙的CPU->乙的内存 ->乙的屏幕

小知识:可执行程序运行的时候 必须先加载到内存

🍭简单介绍操作系统(operating system,简称OS)

🍐操作系统是什么?

管理 计算机硬件 与 软件 资源的 计算机程序

🍐为什么要有操作系统?(这个问题完全可以单独拿出来写一篇博客,可以百度)

简单来说:

1.方便用户使用,比如windows就带有图形界面

2.对上,给使用的用户、开发人员等提供一个良好的运行环境,比如比较稳定,打游戏不会突然因为操作系统的原因掉线之类的

3.对下,管理好底层相关的软件硬件资源

🍐理解管理

举个例子,校长如何管理学生,辅导员提取每个人的信息进学生管理系统,校长通过学生管理系统做决策,决策的具体执行就是在学生管理系统对学生的数据进行处理,比如校长要开除你,那直接把你的数据删掉就行了,此后排课之类的都不算上你[doge],具体的执行就是辅导员操作。这里面校长就相当于CPU,负责管理,辅导员相当于执行者,类比的可以是驱动程序,学生就相当于被管理者,也就是资源。换个角度,对学生的管理就转换成了对学生信息的增删查改.

通过上面看出,管理就是抽离出数据,再对数据进行操作

🍐总结:先描述,再组织

套回上面那个例子,描述就是你的属性(身高体重联系方式之类的),那就是你的数据,组织就比如通过数据结构把你从学生管理系统删除

管理是通过属性进行的

🍐计算机体系是一个层状结构,任何访问硬件或系统软件的行为都必须经过操作系统

因为操作系统不信任用户,用户的对软硬件的操作都必须要经过操作系统,操作系统会提供相应的接口,换句话说,经过操作系统得通过操作系统提供的接口

层次图:

#mermaid-svg-YPjznNvttBQ5hCYN .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-YPjznNvttBQ5hCYN .label text{fill:#333}#mermaid-svg-YPjznNvttBQ5hCYN .node rect,#mermaid-svg-YPjznNvttBQ5hCYN .node circle,#mermaid-svg-YPjznNvttBQ5hCYN .node ellipse,#mermaid-svg-YPjznNvttBQ5hCYN .node polygon,#mermaid-svg-YPjznNvttBQ5hCYN .node path{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-YPjznNvttBQ5hCYN .node .label{text-align:center;fill:#333}#mermaid-svg-YPjznNvttBQ5hCYN .node.clickable{cursor:pointer}#mermaid-svg-YPjznNvttBQ5hCYN .arrowheadPath{fill:#333}#mermaid-svg-YPjznNvttBQ5hCYN .edgePath .path{stroke:#333;stroke-width:1.5px}#mermaid-svg-YPjznNvttBQ5hCYN .flowchart-link{stroke:#333;fill:none}#mermaid-svg-YPjznNvttBQ5hCYN .edgeLabel{background-color:#e8e8e8;text-align:center}#mermaid-svg-YPjznNvttBQ5hCYN .edgeLabel rect{opacity:0.9}#mermaid-svg-YPjznNvttBQ5hCYN .edgeLabel span{color:#333}#mermaid-svg-YPjznNvttBQ5hCYN .cluster rect{fill:#ffffde;stroke:#aa3;stroke-width:1px}#mermaid-svg-YPjznNvttBQ5hCYN .cluster text{fill:#333}#mermaid-svg-YPjznNvttBQ5hCYN div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:12px;background:#ffffde;border:1px solid #aa3;border-radius:2px;pointer-events:none;z-index:100}#mermaid-svg-YPjznNvttBQ5hCYN .actor{stroke:#ccf;fill:#ECECFF}#mermaid-svg-YPjznNvttBQ5hCYN text.actor>tspan{fill:#000;stroke:none}#mermaid-svg-YPjznNvttBQ5hCYN .actor-line{stroke:grey}#mermaid-svg-YPjznNvttBQ5hCYN .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333}#mermaid-svg-YPjznNvttBQ5hCYN .messageLine1{stroke-width:1.5;stroke-dasharray:2, 2;stroke:#333}#mermaid-svg-YPjznNvttBQ5hCYN #arrowhead path{fill:#333;stroke:#333}#mermaid-svg-YPjznNvttBQ5hCYN .sequenceNumber{fill:#fff}#mermaid-svg-YPjznNvttBQ5hCYN #sequencenumber{fill:#333}#mermaid-svg-YPjznNvttBQ5hCYN #crosshead path{fill:#333;stroke:#333}#mermaid-svg-YPjznNvttBQ5hCYN .messageText{fill:#333;stroke:#333}#mermaid-svg-YPjznNvttBQ5hCYN .labelBox{stroke:#ccf;fill:#ECECFF}#mermaid-svg-YPjznNvttBQ5hCYN .labelText,#mermaid-svg-YPjznNvttBQ5hCYN .labelText>tspan{fill:#000;stroke:none}#mermaid-svg-YPjznNvttBQ5hCYN .loopText,#mermaid-svg-YPjznNvttBQ5hCYN .loopText>tspan{fill:#000;stroke:none}#mermaid-svg-YPjznNvttBQ5hCYN .loopLine{stroke-width:2px;stroke-dasharray:2, 2;stroke:#ccf;fill:#ccf}#mermaid-svg-YPjznNvttBQ5hCYN .note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-YPjznNvttBQ5hCYN .noteText,#mermaid-svg-YPjznNvttBQ5hCYN .noteText>tspan{fill:#000;stroke:none}#mermaid-svg-YPjznNvttBQ5hCYN .activation0{fill:#f4f4f4;stroke:#666}#mermaid-svg-YPjznNvttBQ5hCYN .activation1{fill:#f4f4f4;stroke:#666}#mermaid-svg-YPjznNvttBQ5hCYN .activation2{fill:#f4f4f4;stroke:#666}#mermaid-svg-YPjznNvttBQ5hCYN .mermaid-main-font{font-family:"trebuchet ms", verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YPjznNvttBQ5hCYN .section{stroke:none;opacity:0.2}#mermaid-svg-YPjznNvttBQ5hCYN .section0{fill:rgba(102,102,255,0.49)}#mermaid-svg-YPjznNvttBQ5hCYN .section2{fill:#fff400}#mermaid-svg-YPjznNvttBQ5hCYN .section1,#mermaid-svg-YPjznNvttBQ5hCYN .section3{fill:#fff;opacity:0.2}#mermaid-svg-YPjznNvttBQ5hCYN .sectionTitle0{fill:#333}#mermaid-svg-YPjznNvttBQ5hCYN .sectionTitle1{fill:#333}#mermaid-svg-YPjznNvttBQ5hCYN .sectionTitle2{fill:#333}#mermaid-svg-YPjznNvttBQ5hCYN .sectionTitle3{fill:#333}#mermaid-svg-YPjznNvttBQ5hCYN .sectionTitle{text-anchor:start;font-size:11px;text-height:14px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YPjznNvttBQ5hCYN .grid .tick{stroke:#d3d3d3;opacity:0.8;shape-rendering:crispEdges}#mermaid-svg-YPjznNvttBQ5hCYN .grid .tick text{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YPjznNvttBQ5hCYN .grid path{stroke-width:0}#mermaid-svg-YPjznNvttBQ5hCYN .today{fill:none;stroke:red;stroke-width:2px}#mermaid-svg-YPjznNvttBQ5hCYN .task{stroke-width:2}#mermaid-svg-YPjznNvttBQ5hCYN .taskText{text-anchor:middle;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YPjznNvttBQ5hCYN .taskText:not([font-size]){font-size:11px}#mermaid-svg-YPjznNvttBQ5hCYN .taskTextOutsideRight{fill:#000;text-anchor:start;font-size:11px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YPjznNvttBQ5hCYN .taskTextOutsideLeft{fill:#000;text-anchor:end;font-size:11px}#mermaid-svg-YPjznNvttBQ5hCYN .task.clickable{cursor:pointer}#mermaid-svg-YPjznNvttBQ5hCYN .taskText.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-YPjznNvttBQ5hCYN .taskTextOutsideLeft.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-YPjznNvttBQ5hCYN .taskTextOutsideRight.clickable{cursor:pointer;fill:#003163 !important;font-weight:bold}#mermaid-svg-YPjznNvttBQ5hCYN .taskText0,#mermaid-svg-YPjznNvttBQ5hCYN .taskText1,#mermaid-svg-YPjznNvttBQ5hCYN .taskText2,#mermaid-svg-YPjznNvttBQ5hCYN .taskText3{fill:#fff}#mermaid-svg-YPjznNvttBQ5hCYN .task0,#mermaid-svg-YPjznNvttBQ5hCYN .task1,#mermaid-svg-YPjznNvttBQ5hCYN .task2,#mermaid-svg-YPjznNvttBQ5hCYN .task3{fill:#8a90dd;stroke:#534fbc}#mermaid-svg-YPjznNvttBQ5hCYN .taskTextOutside0,#mermaid-svg-YPjznNvttBQ5hCYN .taskTextOutside2{fill:#000}#mermaid-svg-YPjznNvttBQ5hCYN .taskTextOutside1,#mermaid-svg-YPjznNvttBQ5hCYN .taskTextOutside3{fill:#000}#mermaid-svg-YPjznNvttBQ5hCYN .active0,#mermaid-svg-YPjznNvttBQ5hCYN .active1,#mermaid-svg-YPjznNvttBQ5hCYN .active2,#mermaid-svg-YPjznNvttBQ5hCYN .active3{fill:#bfc7ff;stroke:#534fbc}#mermaid-svg-YPjznNvttBQ5hCYN .activeText0,#mermaid-svg-YPjznNvttBQ5hCYN .activeText1,#mermaid-svg-YPjznNvttBQ5hCYN .activeText2,#mermaid-svg-YPjznNvttBQ5hCYN .activeText3{fill:#000 !important}#mermaid-svg-YPjznNvttBQ5hCYN .done0,#mermaid-svg-YPjznNvttBQ5hCYN .done1,#mermaid-svg-YPjznNvttBQ5hCYN .done2,#mermaid-svg-YPjznNvttBQ5hCYN .done3{stroke:grey;fill:#d3d3d3;stroke-width:2}#mermaid-svg-YPjznNvttBQ5hCYN .doneText0,#mermaid-svg-YPjznNvttBQ5hCYN .doneText1,#mermaid-svg-YPjznNvttBQ5hCYN .doneText2,#mermaid-svg-YPjznNvttBQ5hCYN .doneText3{fill:#000 !important}#mermaid-svg-YPjznNvttBQ5hCYN .crit0,#mermaid-svg-YPjznNvttBQ5hCYN .crit1,#mermaid-svg-YPjznNvttBQ5hCYN .crit2,#mermaid-svg-YPjznNvttBQ5hCYN .crit3{stroke:#f88;fill:red;stroke-width:2}#mermaid-svg-YPjznNvttBQ5hCYN .activeCrit0,#mermaid-svg-YPjznNvttBQ5hCYN .activeCrit1,#mermaid-svg-YPjznNvttBQ5hCYN .activeCrit2,#mermaid-svg-YPjznNvttBQ5hCYN .activeCrit3{stroke:#f88;fill:#bfc7ff;stroke-width:2}#mermaid-svg-YPjznNvttBQ5hCYN .doneCrit0,#mermaid-svg-YPjznNvttBQ5hCYN .doneCrit1,#mermaid-svg-YPjznNvttBQ5hCYN .doneCrit2,#mermaid-svg-YPjznNvttBQ5hCYN .doneCrit3{stroke:#f88;fill:#d3d3d3;stroke-width:2;cursor:pointer;shape-rendering:crispEdges}#mermaid-svg-YPjznNvttBQ5hCYN .milestone{transform:rotate(45deg) scale(0.8, 0.8)}#mermaid-svg-YPjznNvttBQ5hCYN .milestoneText{font-style:italic}#mermaid-svg-YPjznNvttBQ5hCYN .doneCritText0,#mermaid-svg-YPjznNvttBQ5hCYN .doneCritText1,#mermaid-svg-YPjznNvttBQ5hCYN .doneCritText2,#mermaid-svg-YPjznNvttBQ5hCYN .doneCritText3{fill:#000 !important}#mermaid-svg-YPjznNvttBQ5hCYN .activeCritText0,#mermaid-svg-YPjznNvttBQ5hCYN .activeCritText1,#mermaid-svg-YPjznNvttBQ5hCYN .activeCritText2,#mermaid-svg-YPjznNvttBQ5hCYN .activeCritText3{fill:#000 !important}#mermaid-svg-YPjznNvttBQ5hCYN .titleText{text-anchor:middle;font-size:18px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YPjznNvttBQ5hCYN g.classGroup text{fill:#9370db;stroke:none;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);font-size:10px}#mermaid-svg-YPjznNvttBQ5hCYN g.classGroup text .title{font-weight:bolder}#mermaid-svg-YPjznNvttBQ5hCYN g.clickable{cursor:pointer}#mermaid-svg-YPjznNvttBQ5hCYN g.classGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-YPjznNvttBQ5hCYN g.classGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-YPjznNvttBQ5hCYN .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5}#mermaid-svg-YPjznNvttBQ5hCYN .classLabel .label{fill:#9370db;font-size:10px}#mermaid-svg-YPjznNvttBQ5hCYN .relation{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-YPjznNvttBQ5hCYN .dashed-line{stroke-dasharray:3}#mermaid-svg-YPjznNvttBQ5hCYN #compositionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-YPjznNvttBQ5hCYN #compositionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-YPjznNvttBQ5hCYN #aggregationStart{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-YPjznNvttBQ5hCYN #aggregationEnd{fill:#ECECFF;stroke:#9370db;stroke-width:1}#mermaid-svg-YPjznNvttBQ5hCYN #dependencyStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-YPjznNvttBQ5hCYN #dependencyEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-YPjznNvttBQ5hCYN #extensionStart{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-YPjznNvttBQ5hCYN #extensionEnd{fill:#9370db;stroke:#9370db;stroke-width:1}#mermaid-svg-YPjznNvttBQ5hCYN .commit-id,#mermaid-svg-YPjznNvttBQ5hCYN .commit-msg,#mermaid-svg-YPjznNvttBQ5hCYN .branch-label{fill:lightgrey;color:lightgrey;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YPjznNvttBQ5hCYN .pieTitleText{text-anchor:middle;font-size:25px;fill:#000;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YPjznNvttBQ5hCYN .slice{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YPjznNvttBQ5hCYN g.stateGroup text{fill:#9370db;stroke:none;font-size:10px;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YPjznNvttBQ5hCYN g.stateGroup text{fill:#9370db;fill:#333;stroke:none;font-size:10px}#mermaid-svg-YPjznNvttBQ5hCYN g.statediagram-cluster .cluster-label text{fill:#333}#mermaid-svg-YPjznNvttBQ5hCYN g.stateGroup .state-title{font-weight:bolder;fill:#000}#mermaid-svg-YPjznNvttBQ5hCYN g.stateGroup rect{fill:#ECECFF;stroke:#9370db}#mermaid-svg-YPjznNvttBQ5hCYN g.stateGroup line{stroke:#9370db;stroke-width:1}#mermaid-svg-YPjznNvttBQ5hCYN .transition{stroke:#9370db;stroke-width:1;fill:none}#mermaid-svg-YPjznNvttBQ5hCYN .stateGroup .composit{fill:white;border-bottom:1px}#mermaid-svg-YPjznNvttBQ5hCYN .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px}#mermaid-svg-YPjznNvttBQ5hCYN .state-note{stroke:#aa3;fill:#fff5ad}#mermaid-svg-YPjznNvttBQ5hCYN .state-note text{fill:black;stroke:none;font-size:10px}#mermaid-svg-YPjznNvttBQ5hCYN .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.7}#mermaid-svg-YPjznNvttBQ5hCYN .edgeLabel text{fill:#333}#mermaid-svg-YPjznNvttBQ5hCYN .stateLabel text{fill:#000;font-size:10px;font-weight:bold;font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family)}#mermaid-svg-YPjznNvttBQ5hCYN .node circle.state-start{fill:black;stroke:black}#mermaid-svg-YPjznNvttBQ5hCYN .node circle.state-end{fill:black;stroke:white;stroke-width:1.5}#mermaid-svg-YPjznNvttBQ5hCYN #statediagram-barbEnd{fill:#9370db}#mermaid-svg-YPjznNvttBQ5hCYN .statediagram-cluster rect{fill:#ECECFF;stroke:#9370db;stroke-width:1px}#mermaid-svg-YPjznNvttBQ5hCYN .statediagram-cluster rect.outer{rx:5px;ry:5px}#mermaid-svg-YPjznNvttBQ5hCYN .statediagram-state .divider{stroke:#9370db}#mermaid-svg-YPjznNvttBQ5hCYN .statediagram-state .title-state{rx:5px;ry:5px}#mermaid-svg-YPjznNvttBQ5hCYN .statediagram-cluster.statediagram-cluster .inner{fill:white}#mermaid-svg-YPjznNvttBQ5hCYN .statediagram-cluster.statediagram-cluster-alt .inner{fill:#e0e0e0}#mermaid-svg-YPjznNvttBQ5hCYN .statediagram-cluster .inner{rx:0;ry:0}#mermaid-svg-YPjznNvttBQ5hCYN .statediagram-state rect.basic{rx:5px;ry:5px}#mermaid-svg-YPjznNvttBQ5hCYN .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#efefef}#mermaid-svg-YPjznNvttBQ5hCYN .note-edge{stroke-dasharray:5}#mermaid-svg-YPjznNvttBQ5hCYN .statediagram-note rect{fill:#fff5ad;stroke:#aa3;stroke-width:1px;rx:0;ry:0}:root{--mermaid-font-family: '"trebuchet ms", verdana, arial';--mermaid-font-family: "Comic Sans MS", "Comic Sans", cursive}#mermaid-svg-YPjznNvttBQ5hCYN .error-icon{fill:#522}#mermaid-svg-YPjznNvttBQ5hCYN .error-text{fill:#522;stroke:#522}#mermaid-svg-YPjznNvttBQ5hCYN .edge-thickness-normal{stroke-width:2px}#mermaid-svg-YPjznNvttBQ5hCYN .edge-thickness-thick{stroke-width:3.5px}#mermaid-svg-YPjznNvttBQ5hCYN .edge-pattern-solid{stroke-dasharray:0}#mermaid-svg-YPjznNvttBQ5hCYN .edge-pattern-dashed{stroke-dasharray:3}#mermaid-svg-YPjznNvttBQ5hCYN .edge-pattern-dotted{stroke-dasharray:2}#mermaid-svg-YPjznNvttBQ5hCYN .marker{fill:#333}#mermaid-svg-YPjznNvttBQ5hCYN .marker.cross{stroke:#333}

:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}#mermaid-svg-YPjznNvttBQ5hCYN {
color: rgba(0, 0, 0, 0.75);
font: ;
}

      用户
     

      用户操作接口
     

      系统调用接口
     

      操作系统
     

      驱动程序
     

      底层硬件
     

以C程序举例

C语言里的printf和scanf需要调用系统接口

image-20220112134809897

按我们的习惯,第一行肯定要写#include<stdio.h>

:写#include<stdio.h>是因为头文件里有一些库函数的声明,比如printf和scanf

而上面的test.c里并没有出现printf和scanf等操作,所以这几行代码都是属于用户层面的,并不需要调用系统接口,自然是可以通过编译链接的image-20220112135359581

换言之,这几行代码都是属于你的,和操作系统没有关系。

操作系统把代码转化为指令交给CPU执行

🍭进程

🍈进程概念:程序的一次执行过程

windows下

image-20220112141300469

任务管理器下即可看到进程

🍈PCB(process control block):进程控制块,可以看作是进程属性的集合

作用:描述进程,Linux系统下的PCB是task_struct

小知识:Linux是用C写的,在C语言里能描述一个事物的属性的变量自然是结构体变量

🍈社会上我们的身份证可以表示我们的身份,也就是我们的ID

Linu如何表示进程呢?

进程也有自己的ID,称作PID,通过PID就可以表示一个进程

假如Linux下我们写一段C代码:

test.c
#include<stdio.h>#include<unistd.h>intmain(){int a;    
  a=1+1;while(1){printf("I am a process,pid::%d\n",getpid());//getpid()是得到当前进程ID的一个函数                         sleep(1);}return0;}

写完后,test.c编译链接生成可执行程序test,通过系统接口给到操作系统,操作系统新建一个进程来运行test.

🍈Linux下查看进程

🍍ps命令查看进程

🍒ps aux |grep test

image-20220112141928473

上面就是进程的具体信息

可以和grep配合使用查找想看的进程,比如此时我们运行test

image-20220112142317993

显然,26543就是test进程的ID了.

🍒ps axj

ps axj |grep 关键字

组合grep可以筛选进程

image-20220112195054871

🍒 ps axj |head -数字 &&ps axj| grep 关键字

image-20220112231135932

🍒 进程也有父进程,可以通过函数getppid()看到

#include<stdio.h>#include<unistd.h>intmain(){int a;    
  a=1+1;while(1){printf("I am a process,pid::%d,my father is%d\n",getpid(),getppid());sleep(1);}return0;}

运行:

image-20220112143404655

pid就是当前进程的编号,这里就是27848,父进程的编号(PPID)是20197

🍒 这个20197又是什么进程?

通过:ps axu|grep 20197

image-20220112143623216

bash是我们登录时就创建的

🍍top 也可以看到进程信息

按q退出

image-20220112144424985

🍍在 proc目录内也可以看到进程的相关信息

proc目录在根目录下

🍍cd /proc

image-20220112144856106

cd 20197 进入20197,里面的文件就是进程属性的记录

image-20220112144934879

🍍上下文数据:进程执行时cpu内的寄存器的数据

进程切换时需要保存数据

比如进程1在运行,运行了一段时间优先级更高的进程2来了,进程1就要暂停,把资源让给进程2,此时进程1的数据就要被保存到PCB中,不然之后不能继续运行,进程2运行完了后,要回到进程1,就必须恢复进程1的数据,这些数据就是上下文数据

随笔记录:CPU只看PCB

🍍进程切换的例子:优先级高的进程来了 时间片到了

🍍时间片是什么?

CPU公平分配资源的策略就是运行一段时间后切换到另一个进程

一个进程A在cpu上跑,如果这个进程A需要很久才能跑完的话,那别的进程在CPU运行进程A时就不能获得资源,而CPU公平分配资源的策略就是运行一段时间后切换到另一个进程,比如进程A跑了10ms,之后保存进程A的数据(上下文数据,利于恢复),此时切换到进程B,进程B也跑10ms,再保存数据切换到进程A,这里的时间片就是10ms

🍍上下文的保存与恢复:场景就是切换进程

优先级高的进程来了,时间片到了都可以使得进程停止

🍍时间片是什么?

CPU公平分配资源的策略就是运行一段时间后切换到另一个进程

一个进程A在cpu上跑,如果这个进程A需要很久才能跑完的话,那别的进程在CPU运行进程A时就不能获得资源,而CPU公平分配资源的策略就是运行一段时间后切换到另一个进程,比如进程A跑了10ms,之后保存进程A的数据(上下文数据,利于恢复),此时切换到进程B,进程B也跑10ms,再保存数据切换到进程A,这里的时间片就是10ms

🍍上下文的保存与恢复:场景就是切换进程

🍭末尾 📖

这篇文章很多地方没有讲的透彻,因为我也才刚接触操作系统,这篇博客仅作记录用,如果有错误麻烦指出,敬请海涵
如果有帮助的话麻烦点个赞鼓励一下!

标签: linux 运维 服务器

本文转载自: https://blog.csdn.net/m0_53005929/article/details/122464665
版权归原作者 你算哪一个bug? 所有, 如有侵权,请联系我们删除。

“Linux学习笔记(6)”的评论:

还没有评论