括号里面

This commit is contained in:
Estom
2021-09-05 00:18:20 +08:00
parent eb1760aa0b
commit d994b489bb
20 changed files with 137 additions and 14 deletions

View File

@@ -0,0 +1,13 @@
\documentclass{article}
\title{括号里面}
\author{应用}
\usepackage{ctex}
\newcommad\degree{^\circ}
\begin{document}
\maketitle
\section{hello}
hello world殷康龙
\end{document}

18
code_segment/shili.cpp Normal file
View File

@@ -0,0 +1,18 @@
#include<iostream>
using namespace std;
int add(int a,int b){
int c = a+b;
return c;
}
int main(){
int a=10,b=11;
add(a,b);
int m = 10;
while(m--){
if(m>5){
cout<<m<<endl;
}
}
return 0;
}

View File

View File

@@ -25,7 +25,7 @@
* [ ] 操作系统
* [ ] 基础知识
* [ ] 关于同步异步机制的理解。总结各种语言、库、中间件、设计模式、数据库、操作系统的同步异步方式。
* [ ] Linux底层原理和常见函数
* [ ] Linux底层原理和常见函数。为什么说一切皆文件
* [x] 数据库
* [x] 基础知识
* [x] MySQL

View File

@@ -0,0 +1,34 @@
# 括号里面
## 括号概念
## 括号历史
## 括号作用
### 文学表达上
### 常用的含义
### 数学运算中
### 计算机中
## 括号故事与文字游戏

View File

@@ -8,7 +8,7 @@
> 5. OS结构设计
## 1 操作系统的目标和作用
![](image/2021-09-04-08-49-51.png)
### 定义
* 操作系统Operating SystemOS是计算机系统最基础的系统软件管理软硬件资源、控制程序执行改善人机界面合理组织计算机工作流程为用户使用计算机提供良好运行环境。

View File

@@ -40,8 +40,8 @@
### 进程的特征
* 结构特征:由程序段、数据段和 PCB 三部分便构成了进程实体。
* 动态性:进程的实质是进程实体的一次执行过程,包含创建、调度、撤销。进程具有一定的声明周期。程序是一组指令的集合,是静态的。
* 并发性:这是指多个进程实体同存于内存中,且能在一段时间内同时运行。
* 动态性:进程的实质是进程实体的一次执行过程,包含创建、调度、撤销。进程具有一定的声明周期。程序是一组指令的集合,是静态的。
* 独立性:独立性是指进程实体是一个能独立运行、独立分配资源和独立接受调度的基本单位。
* 异步性:这是指进程按各自独立的、 不可预知的速度向前推进,或说进程实体按异步方式运行。

View File

@@ -1,6 +1,6 @@
# 2.2 进程控制
> 上一节主要从状态的角度介绍了静态的状态有哪些。这一节朱啊哟介绍状态之间如何切换,引起切换的原因,和切换的步骤。
> 上一节主要从状态的角度介绍了静态的状态有哪些。这一节介绍状态之间如何切换,引起切换的原因,和切换的步骤。
> 7中状态主要包括创建、终止、就绪、阻塞、执行、静态阻塞、静态就绪。
> 状态转换主要包括:创建、终止(释放)、阻塞、唤醒、调度、挂起、激活。
@@ -73,8 +73,8 @@
### 进程挂起的过程
1. 首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪; 对于活动阻塞状态的进程,则将之改为静止阻塞。
2. 了方便用户或父进程考查该进程的运行情况而把该进程的 PCB 复制到某指定的内存区域。
1. 首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪; 对于活动阻塞状态的进程,则将之改为静止阻塞。
2. 了方便用户或父进程考查该进程的运行情况而把该进程的 PCB 复制到某指定的内存区域。
3. 最后,若被挂起的进程正在执行,则转向调度程序重新调度
### 进程激活的过程

View File

@@ -5,9 +5,11 @@
### 两种制约关系
> 针对两种制约关系,合作制约关系和互斥制约关系,需要通过同步机制实现。
- 直接制约关系(合作/同步)。由于多个进程相互合作产生,使得进程有一定的先后执行关系。
- 直接制约关系(同步)。由于多个进程相互合作产生,使得进程有一定的先后执行关系。
- 间接制约关系(互斥)。由于多个进程资源共享产生,多个进程在同一时刻只有一个进程能进入临界区。
> 显然,同步是一种更为复杂的互斥,而互斥是一种特殊的同步。也就是说互斥是两个任务之间不可以同时运行,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行,而同步也是不能同时运行,但他是必须要安照某种次序来运行相应的线程(也是一种互斥)!因此互斥具有唯一性和排它性,但互斥并不限制任务的运行顺序,即任务是无序的,而同步的任务之间则有顺序关系。
### 临界资源和临界区
* 共享的互斥资源称为**临界资源**。
* 对临界资源进行访问的那段代码称为**临界区**。

View File

@@ -17,7 +17,7 @@
### 进程通信的实现划分
* 基础进程通信机制。只能传递状态和整数值(控制信息)。特点:传送信息量小,效率低,每次通信传递的信息量固定,若传递较多信息则需要进行多次通信。编程复杂:用户直接实现通信的细节,容易出错。
* 条件变量、信号量、管程
* 、信号量、条件变量
* 信号signal wait notify
* 共享内存通信机制
* 共享内存。(可以通过信号量控制)

View File

@@ -0,0 +1 @@
##

43
操作系统/Readme.md Normal file
View File

@@ -0,0 +1,43 @@
# 同步异步
> 经过长久的观察发现。同步异步,是一个跨越所有领域的知识的共同点。
> 发现,这一系列同步异步相关内容。可以抽象成一些共通的模型和方式。这些模型和方式,应该是凌驾于语言和应用场景之上的。
> 而我要做的是,对这一系列的同步异步场景,抽象出共通的模式模型,然后针对每一种模式模型,总结相关的场景和操作。对相关内容进行跨领域跨语言各个场景的总结。
## 本质原理
### 相关领域
1. 操作系统的进程线程协程之间可以同步异步Linux并发编程
2. IO也可以同步异步LinuxIO编程
3. 计算机网络通信可以是同步异步Linux网络编程
4. 设计模式中可能包含同步异步的模式reactor、Proactor
5. 数据库中的数据读取可以是同步异步、
6. C++中的多线程同步异步和异步IO、
7. Python的多线程和协程asyncio的实现、
8. go的channel并发机制、
9. nodejs的单线程并发、
10. java的多线程同步io和异步io
### 该领域相关的问题或者说概念名词
* 并发与并行
* 单线程并发
* 多线程并发(并行)
* 机制:
* 事件响应机制event handler
* 消息传递机制消息队列IPC
* 回调机制call back
* IO
* IO多路复用Poll、epoll、select
* 异步?非阻塞。
* 同步?阻塞
* 同步?轮询

Binary file not shown.

After

Width:  |  Height:  |  Size: 333 KiB

View File

@@ -17,9 +17,9 @@
3. OS实现了对计算机资源的抽象
**3为什么说OS实现了对计算机资源的抽象**
**3为什么说OS实现了对计算机资源的抽象为什么说Linux一切皆文件**
OS首先在裸机上覆盖一层I/O设备管理软件实现了对计算机硬件操作的第一层次抽象在第一层软件上再覆盖文件管理软件实现了对硬件资源操作的第二层次抽象。OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。
OS首先在裸机上覆盖一层I/O设备管理软件实现了对计算机硬件操作的第一层次抽象在第一层软件上再覆盖文件管理软件实现了对硬件资源操作的第二层次抽象。OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。不同的资源实现相同的接口,就可以实现可扩展性。
**4试说明推动多道批处理系统形成和发展的主要动力是什么**

View File

@@ -13,7 +13,7 @@ this 不是指向类。而是在实例化的时候与当前类的实例也就是
在C++和java这种只能传递基本数据类型和构造数据类型的语言中即函数不作为数据类型的语言中可以通过传递整个对象的方法使得被调用者能够通过调用者对象的指针进行回调这也是设计模式的一种。观察者模式
关于回调函数的本质理解:当其他程序执行时,能够通过回调函数,转移进程控制权限,给调用者。可以把调用者与被调用者分开。调用者能够显式调用被调用者,同时被调用这能通过回调函数隐式调用调用者。
关于回调函数的本质理解:当其他程序执行时,能够通过回调函数,转移进程控制权限,给调用者(这里并没有转移控制权,而是保留控制权在本地,完成不可知的后续处理)。可以把调用者与被调用者分开。调用者能够显式调用被调用者,同时被调用这能通过回调函数隐式调用调用者。
关于回调函数的本质理解:回调函数在同一个层次内是没有用的,或者说没有必要的。如果一个人,在实现一个层次内部的函数执行权限转移过程中,可以直接进行相互调用,因为本质上,两个部分是完全可知的。但是在不同层次的调用中,例如用户层与系统层中,用户层调用系统层,可以通过显式调用,但是系统层并不会考虑用户层的具体实现,对用户层是不可知的。这个时候,系统层会通过传递来的回调函数,将进程控制权交给用户层。

View File

@@ -45,7 +45,7 @@
2. 当然两者似乎也有重合的部分。例如在socket编程网络编程网络进程通信过程中即是一种**网络进程通信(两个远程进程)**,也是一种**网络IO过程一个进程与网卡设备IO**。可以看成两个远程的网络进程通信也可以看成单个线程与本地网卡设备的IO过程。
3. 所以在某种程度上。可以把两个进程的通信看成某一个用户进程的IO过程而另一个进程看成是设备
3. 所以在某种程度上。可以把两个进程的通信看成某一个用户进程的IO过程而另一个进程看成是内核
## 4 实现方式
### 同步阻塞通信
@@ -75,10 +75,10 @@
> 此种方式下是指应用发起一个IO操作以后不等待内核IO操作的完成等内核完成IO操作以后会通知应用程序这其实就是同步和异步最关键的区别同步必须等待或者主动的去询问IO是否完成那么为什么说是阻塞的呢因为此时是通过select系统调用来完成的而select函数本身的实现方式是阻塞的而采用select函数有个好处就是它可以同时监听多个文件句柄从而提高系统的并发性
### 实现并编程的几种方法
### 实现并编程的几种方法
1. java 多线程。
2. nodejs 单线程异步回调。非阻塞异步回调。Proactor模式
3. linux 单线程IO复用。select/poll/epoll事件回调。多路堵塞同步回调。reactor模式
> 这里所谓的什么机制、什么方法。都是设计模式的一部分。通过某种设计模式,实现并编程:异步回调模式、事件回调模式等。
> 这里所谓的什么机制、什么方法。都是设计模式的一部分。通过某种设计模式,实现并编程:异步回调模式、事件回调模式等。

View File

@@ -1,3 +1,5 @@
## 操作系统的基本特征
## 1 进程的三态模型、五态模型、七态模型
1. 创建

View File

@@ -300,3 +300,13 @@ Stream 是新增加的数据类型,它与其它数据类型一样,每个写
* 生产者限流:避免消费者处理不及时,导致持续积压
* 丢弃消息:中间件丢弃旧消息,只保留固定长度的新消息
在发布消息时,你可以指定队列的最大长度,防止队列积压导致内存爆炸。
```
// 队列长度最大10000
127.0.0.1:6379> XADD queue MAXLEN 10000 * name zhangsan
"1618473015018-0"
当队列长度超过上限后,旧消息会被删除,只保留固定长度的新消息。
```
这么来看Stream 在消息积压时,如果指定了最大长度,还是有可能丢失消息的。