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

:root { --mermaid-font-family: "trebuchet ms", verdana, arial;}
#mermaid-svg-eTXpLbEwZhZ9C7AX {
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>    
int main()    
{    
  int a;    
  a=1+1;    
  while(1)    
  {    
  printf("I am a process,pid::%dn",getpid());  
     			//getpid()是得到当前进程ID的一个函数                         
    sleep(1);    
  }    
  return 0;    
} 

写完后,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>    
int main()    
{    
  int a;    
  a=1+1;    
  while(1)    
  {    
  printf("I am a process,pid::%d,my father is%dn",getpid(),getppid());    
    sleep(1);    
  }    
  return 0;    
} 

运行:

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

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

?末尾 ?

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>