当前位置: 首页 > wzjs >正文

陕西省咸阳市建设银行网站微平台图片

陕西省咸阳市建设银行网站,微平台图片,深圳企业名录,网wordpress站底部图片悬浮目录 一、冯诺依曼体系结构 二、浅谈操作系统 1.概念 2.存在的目的 3.核心功能 4.如何理解管理 三、系统调用和库函数 四、进程 1.概念 2.描述进程——PCB 3.查看进程 4.与系统相关的调用 5.系统调用获取进程标识符 6.初识fork 五、总结 一、冯诺依曼体系结构 我…

目录

一、冯诺依曼体系结构

二、浅谈操作系统

1.概念

2.存在的目的

3.核心功能

4.如何理解管理

三、系统调用和库函数

四、进程

1.概念

2.描述进程——PCB

3.查看进程

4.与系统相关的调用

5.系统调用获取进程标识符

6.初识fork

五、总结


一、冯诺依曼体系结构

我们日常使用的笔记本电脑、手机、平板等设备基本上都是遵循冯诺依曼体系结构的。

根据冯诺依曼体系结构,计算机可以被分为输入设备、输出设备、存储器、运算器和控制器

输入设备:包括键盘,鼠标,扫描仪,写板等

输出设备:显示器,打印机等

存储器:内存,外存
中央处理器(CPU):含有运算器和控制器等

 谈到这,就不免要拿出下面这张图了,也就是存储器速度的差异图。

这个图其实很好的解释了内存存在的意义:

内存存在的意义是什么? 

我们来试想一下如果没有内存,那么cpu将需要直接从外设中获取数据进行处理,而由于外设的速度通常是比较慢的,cpu的效率将直接由外设的效率决定,这将给大打折扣cpu处理的效率。

那么内存这个时候就可以很好的缓解这个问题,因为内存的速度比外设快,就可以先让内存读取外设的数据,再由内存向cpu加载数据,这样一来就大大提高了cpu处理的效率。

划重点:我们常说的IO操作(存储)就是站在内存的角度,把数据从输入设备存入内存的操作就是Input,而把内存的数据加载到输出设备的操作就是Output。

说明一下:

我们这里的存储器指的单单是内存
不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)CPU不和外设直接打交道,和内存直接打交道。外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
简单来说,就是所有设备都只能直接和内存打交道,从而提高整机效率。

二、浅谈操作系统

1.概念

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:
内核(进程管理,内存管理,文件管理,驱动管理)
其他程序(例如函数库,shell程序等等)

2.存在的目的

对下:与硬件交互,管理所有的软硬件资源
对上:为用户程序(应用程序)提供一个良好的执行环境

3.核心功能

在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件。操作系统并不是直接对硬件做管理,而是通过对数据进行分析,来最终做出管理上的决策,然后驱动执行。

4.如何理解管理

操作系统管理的本质就是对数据做管理,而对数据管理就是先描述再组织

描述:可以是结构体struct

组织:各种数据结构,如链表

三、系统调用和库函数

在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用这部分由操作系统提供的接口,叫做系统调用。

系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

这里对应的就是上面图中的system call部分用户不能够直接与系统进行交互,只能通过各种接口进行交互。

四、进程

1.概念

课本上的概念:程序的一个执行实例,正在执行的程序等。
内核的观点:担当分配系统资源(CPU时间,内存)的实体。

2.描述进程——PCB

基本概念:

进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。

课本上称之为PCB(process controlblock),Linux操作系统下的PCB是: task_struct。

task_struct:

在Linux中描述进程的结构体叫做task struct。task struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。

task_struct的内容分类:

标示符:描述本进程的唯一标示符,用来区别其他进程。
状态:任务状态,退出代码,退出信号等。
优先级:相对于其他进程的优先级。
程序计数器:程序中即将被执行的下一条指令的地址。
内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下文数据:进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。
I/0状态信息:包括显示的I/0请求,分配给进程的!/0设备和被进程使用的文件列表。
记账信息:可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
其他信息

组织进程: 

3.查看进程

我们可以通过函数调用来看一看指令。

首先,我们创建两个文件(myproc.c)和(makefile)

编写makefile

编写myproc.c

然后我们make一下,生成可执行程序,开始执行:

接下来就可见一见进程了:

我们也可以kill掉进程,当然了之前我们指令中的热键ctrl + c也可以杀死进程。

进程在运行的时候本质是在读取进程内部的代码,内部在执行,从启动到终止中间可能会有一段很长的时间,这个进程就具备了动态属性。
以上就是我们对于进程简单的查看。 

4.与系统相关的调用

如果我们想要查看进程的id,那么我么就要用到getpid();

打开man手册:

下面我们来测试一下,我们可以对myproc.c进行修改:

执行一下:

此外,我们还有一种查看进程的方法:

进入/proc目录:

数字的就是进程的pid,进程可以被当成文件看待

如果我们把进程杀掉了,自然在proc下也就找不到了。 

 

5.系统调用获取进程标识符

进程id(PID)
父进程id(PPID)
 

敲黑板: 

在命令行上启动的进程,不出意外的话父进程都是bash。

6.初识fork

我们现在手册上见一见:

fork的作用:创建子进程

关于fork的返回值:

(所以对于结果我们很好理解,返回成功时,会给父进程返回子进程的pid,子进程会返回0)。但是,这里居然一个变量id居然会有两个返回值,这里在以前是想都不敢想的,后面我们在展开这个问题。我们根据这个返回结果写代码:

 

我们观察可以看到,两个whie循环都执行起来了,这也证明了实际上参与while循环的有两个进程,并且它们是父子进程,即父子关系。
这也说明了,在forK之后,又创建了一个进程,两个进程分别在两个执行流中,因此可以分别执行if 和 else if,也可以分别进入while循环。

敲黑板:

总结一句话,fork()之后,会有父进程+子进程两个进程在执行后续代码,fork()后续的代码,被父子进程共享,通过返回值不同,让父子进程执行共享代码的一部分,这就是并发式编程。

五、总结

我们在这一节中简单的介绍了冯诺依曼体系结构,了解了该结构是如何解决cpu是如何与外设之间进行交互的,也就是通过内存进行交互,然后简单介绍了一下系统调用和库函数,最后我们简单的介绍了一下进程,了解了fork()函数。 


文章转载自:

http://cyrDxpF7.jgnjL.cn
http://U03KO0ff.jgnjL.cn
http://GOtauu05.jgnjL.cn
http://5UsfscHl.jgnjL.cn
http://Yz2FNyGk.jgnjL.cn
http://BLwCQeIo.jgnjL.cn
http://NK4tC5UG.jgnjL.cn
http://Pyuvmgu4.jgnjL.cn
http://9fOfSNHF.jgnjL.cn
http://LBS6UNBq.jgnjL.cn
http://SkvybayB.jgnjL.cn
http://2g4pQ2kw.jgnjL.cn
http://PIzZmgAu.jgnjL.cn
http://Fr6bUuZa.jgnjL.cn
http://gQrjvfrV.jgnjL.cn
http://kQMeWqSf.jgnjL.cn
http://b0ICXXDk.jgnjL.cn
http://g5SFUUB0.jgnjL.cn
http://uviwvZBM.jgnjL.cn
http://nUGRzTWG.jgnjL.cn
http://bhah19SH.jgnjL.cn
http://9hsv61ia.jgnjL.cn
http://HgUNrpbn.jgnjL.cn
http://MPMA9tAk.jgnjL.cn
http://ZYkV42IT.jgnjL.cn
http://MYRFnpfY.jgnjL.cn
http://NVUCE3pT.jgnjL.cn
http://BYNnhrZu.jgnjL.cn
http://dgtId6pS.jgnjL.cn
http://oEpIx8pf.jgnjL.cn
http://www.dtcms.com/wzjs/745157.html

相关文章:

  • 如何破解网站后台密码网络营销课程实训报告
  • 上海网站制作平台注册logo去哪里注册
  • 上海网站建设百度推广公司佛山互联网公司
  • 江苏住房建设厅主办网站阿里云做网站教程
  • 建设网站五个步骤wordpress excel插件
  • 免费做电子相册的网站水泵行业网站哪个做的好
  • 企业网站开发 流程软件开发一般需要多少钱
  • 深圳专业软件网站建设网站建设硬件和软件技术环境配置
  • 佛山网站建设定制开发实验室网站制作
  • 做电影资源网站有哪些vue 做企业网站
  • 两学一做 专题网站河南省台前县建设局网站
  • 网站开发薪水一般多少钱专业网站建设一条龙
  • 单网页网站内容网站建设与营销服务
  • win10 做网站服务器吗做免费视频网站违法吗
  • 网站修改 iis6应用程序池家用电脑桌面做网站
  • 徐州住房与建设局网站免费ppt成品
  • 安庆网站建设电话网站建设怎么学
  • 什么网站做一手房好上海网站制作公司是什么
  • 制作网站软件app网页游戏开服表源码
  • 网站需要备案才能建设吗PHP做克隆网站
  • 东莞英文网站制作百度seo公司一路火
  • 官方网站的重要性宣传软文怎么写
  • 做同城网站需要哪些手续宣传页在线设计软件
  • 网站外链快速建设企业网站建立制作
  • 南昌高端网站开发费用表西安自助建站系统
  • 用python做网站的多吗做货源网站可以赚钱吗
  • 蓝色高科技网站模板友情链接交换平台源码
  • 电脑做服务器上传网站定制小程序开发公司
  • 珠海一元夺宝网站建设互联网保险销售行为可回溯管理办法
  • 建设一个企业网站多少钱工业设计考研学校排名