wordpress动漫风格,网站怎样做有利于seo,网站建设企业公司,网站报价功能清单一、新系统#xff0c;新软件
1.新系统
哈喽宝子们#xff0c;从今以后我们不再使用风靡一时的CentOS系统了#xff0c;因为CentOS已经不在维护了#xff0c;各大公司几乎也都从CentOS转入其他操作系统了#xff1b;我们现在由原来的CentOS系统切换到最新的Ubuntu系统新软件
1.新系统
哈喽宝子们从今以后我们不再使用风靡一时的CentOS系统了因为CentOS已经不在维护了各大公司几乎也都从CentOS转入其他操作系统了我们现在由原来的CentOS系统切换到最新的Ubuntu系统各大公司不用我们为什么还要学习一个不维护的系统呢
我目前使用的是Ubuntu最新的系统了 注意我们切换系统的时候是要重装系统的哦所以我们需要把我们之前的东西传到代码托管平台上切换新系统后在克隆下来就好了
那么有了新系统我们当然也要搭配新软件了之前的Vim是不是超级难用快捷命令太多容易忘而且上下左右走到代码指定位置特别烦所以我们换一个新的软件他就是VSCode
2.新软件
VS Code安装很简单咱们都是学计算机的到官网下载一个软件都不会吗
下载完成后我需要介绍几个插件
1️⃣Chinese (Simplified) (简体中文) 你如果不下载这个那么我会非常佩服你的英语水平
2️⃣C/C 和 C/C Extension Pack 这个重要性就应该不需要我多说了
3️⃣Remote - SSH 这个就是用来链接云服务器的插件了 点连接 输入密码就添加成功了 基本的就介绍到这里了相信大家的学习能力我也知道写的并不详细这里就是快入入门吧开启我们的新篇章进程间的通信
二、通信引入
1.进程为什么要通信
首先计算机是人类发明的人类都要通信计算机怎么不需要呢
进程也是需要某种协同的所以如何协同的前提条件就是要通信通信的本质也就是传递数据等数据也是有类别的有的数据是通知就绪的就比如老师通知你上课有的数据就是单纯要传递给我的比如老师这是我们写的作业你来看看我们写的怎么样还有控制相关的信息比如下课了老师还在拖堂校长就打电话给老师你赶紧下课不许占用学生们课下的时间等等等
另外我们要拉出来一个事实进程是具有独立性的进程 内核数据结构 代码和数据
2.进程如何通信
1️⃣进程间通信成本可能会稍微高一些因为进程是具有独立性的
2️⃣进程间通信的前提先让不同的进程看到同一份操作系统资源“一段内存”
通信一定是某一个进程发出来的比如进程A需要与进程B通信为了保证进程的独立性A的代码和数据不能被B看到B的代码和数据不能被A看到那么A、B就需要在页表映射的时候指向同一块内存用于通信
其中公共的区域是操作系统完成的为了访问这块资源操作系统必须提供很多的系统调用这就会有许多的接口接口的不同那么进程间的通信也会有不同的种类 3.进程通信的常见方式
无论是什么方式都要遵循通信的标准我们这里介绍两个标准
1️⃣system V本地通信标准
通信的三种方式 a.消息队列 b.共享内存 c.信号量
我们这里只谈共享内存
人都是喜欢偷懒的在这三种方式出来前人就想着能不能直接复用内核代码直接通信那么结果肯定是可以的于是就发明了管道管道有命名的和匿名的
2️⃣Posix网络通信 三、管道
什么是管道 管道是Unix中最古老的进程间的通信形式 我们把一个进程连接到另一个进程的一个数据流称为一个“管道”
匿名管道
匿名管道的引入
【理解一种现象】为什么父子进程会向同一个显示器终端打印数据
进程默认会打开三个标准输入输出错误012这是因为这个进程是bash的子进程bash打开了所有的子进程也就打开了我们只要做好约定即可不懂我们接着往下看⬇️ 【问题】如果我们以读的方式打开一个文件写的方式打开同一个文件会发生什么
首先同一个文件打开两次struct file会被创建两次但因为是同一个文件并不会再单独创建文件的Inode等而是直接指向同一块空间操作系统不会去做浪费时间浪费空间的事 我们假设父进程以读的方式打开子进程以写的方式打开那么子进程以写的方式打开会拷贝一份父进程的PCB和文件描述符表浅拷贝但是struct file等不会拷贝我们之间不是说进程要保证独立性吗为什么这里不拷贝因为进程具有独立性是进程的事与文件系统无关 既然是浅拷贝那么指针的指向都是不变的所以父进程打开的文件子进程也能看见了
【问题】为什么我们子进程主动close(0/1/2),不影响父进程继续使用显示器文件呢
因为在文件系统内存在内存级引用计数与硬连接数类似只有当引用计数为0的时候才会真正的释放文件资源file - ref_count --; if(ref_count 0) 释放文件资源 不同的进程看到的同一份资源比如这里的父子进程看到同一份文件不重要重要的是看见同一份文件缓冲区这个基于文件的文件缓冲区我们就叫做管道文件 进程间的通信也就不需要再将内容刷新到磁盘上去了于是就给管道重新设计通信接口只需要让进程间进行内存级通信就可以了