// 多个Customer进程并行执行。
* `*`生产者/消费者问题。
int buffer;
typedef int Semaphore; Semaphore sp = 1, sc = 0;
process Producer(void) { while (1) { {制造product;} P(sp); buffer = product; V(sc); } }
process Consumer(void) { while (1) { P(sc); product = buffer; V(sp); {处理product;} } }
// 一个Producer和一个Consumer进程并行执行。
int buffer[n], p1 = 0, p2 = 0;
typedef int Semaphore; Semaphore sp = n, sc = 0;
process Producer(void) { while (1) { {制造product;} P(sp); buffer[p1] = product; p1 = (p1 + 1) % n; V(sc); } }
process Consumer(void) { while (1) { P(sc); product = buffer[p2]; p2 = (p2 + 1) % n; V(sp); {处理product;} } }
// 定义缓冲器的个数n并赋值。 // 一个Producer和一个Consumer进程并行执行。
int buffer[n], p1 = 0, p2 = 0;
typedef int Semaphore; Semaphore sp = n, sc = 0, mutex = 1;
process Producer(void) { while (1) { {制造product;} P(sp); P(mutex); buffer[p1] = product; p1 = (p1 + 1) % n; V(mutex); V(sc); } }
process Consumer(void) { while (1) { P(sc); P(mutex); product = buffer[p2]; p2 = (p2 + 1) % n; V(mutex); V(sp); {处理product;} } }
// 定义缓冲器的个数n并赋值。 // 多个Producer和多个Consumer进程并行执行。
* `*`(优先读者)读者/写者问题。
int readers = 0;
typedef int Semaphore; Semaphore mutex = 1, writer = 1;
process Reader(void) { while (1) { P(mutex); if (0 == readers) { P(writer); } readers += 1; V(mutex); {对共享数据集进行读操作;} P(mutex); readers -= 1; if (0 == readers) { V(writer); } V(mutex); } }
process Writer(void) { while (1) { P(writer); {对共享数据集进行写操作;} V(writer); } }
// 多个Reader和多个Writer进程并行执行。
* `*`管程(Monitor)是由汉森(Brinch Hansen)和霍尔(Hoare)首先提出的解决进程间同步和互斥问题的方法,比信号量机制更加安全,使用起来更方便,具有3个特性:互斥性、安全性、共享性。
* 死锁(Dead Lock或Dead-Embrace)是指2个或2个以上的进程中的每一个进程都在等待其中的另一个进程释放其资源而被阻塞,导致这些进程都无法推进的状态。
* 产生死锁的根本原因是资源匮乏。
* `*`产生死锁的4个必要条件:
+ `*`互斥使用资源。每一个资源任一时刻只能由一个进程使用,如果进程想申请被其他进程占用的资源,则该进程必须等待。
+ `*`占有且申请资源。一个进程占有了资源还需要申请新的资源。
+ `*`不可抢夺式分配。一个进程不能从其他进程抢夺资源,一个资源只能由拥有该资源的进程使用完后主动释放。
+ `*`循环等待。必然存在着一个进程循环等待链,链中的每一个进程都在等待它前一个进程所占用的资源。
* `*`银行家算法能避免死锁,但不能预防死锁。
+ `*`安全状态。安全状态一定不是死锁状态。
+ `*`不安全状态。不安全状态不一定是死锁状态。
+ `*`死锁状态。死锁状态一定是不安全状态。
* `*`由于银行家算法每次执行的分配都要保证系统处于安全状态,安全状态肯定不是死锁状态,所以银行家算法可以避免死锁。
* `*`假如当前3个进程分别需要`a`、`b`、`c`个资源,系统需要最少`(a-1)+(b-1)+(c-1)+1`才不会发生(不可能发生)死锁。
#### 第3章 存储管理
* `*`存储管理的功能(任务):内存的分配与回收、地址转换(地址重定位)、内存的共享和存储保护、内存的扩充。
* `*`存储管理方式:
+ `*`简单(全部装入)方式。
- `*`空间连续方式。
* `*`单一连续分区式存储管理。
* `*`固定分区式存储管理。
* `*`可变分区式存储管理。
- `*`空间不连续方式。
* `*`简单分页式存储管理。
* `*`简单分段式存储管理。
* `*`简单段页式存储管理。
+ `*`虚拟(部分装入)方式。
- `*`空间不连续方式。
* `*`请求分页式虚拟存储管理。
* `*`请求分段式虚拟存储管理。
* `*`请求段页式虚拟存储管理。
* `*`单一连续分区式存储管理和固定分区式存储管理的地址是静态重定位的。
* `*`可变分区式存储管理的地址是动态重定位的。
* `*`可变分区的分配算法(移动技术,即紧缩,可能使空闲区的数量:加一、不变、减一):
+ `*`最先适应(First Fit,FF)分配算法。
+ `*`最佳适应(Best Fit,BF)分配算法。
+ `*`最坏适应(Worst Fit,WF)分配算法。
+ `*`下次适应(Next Fit,NF)分配算法。
* `*`位示图用于表示简单分页式存储管理中的主存分配表。优点:占用主存空间小、可常驻内存、有利于系统分配内存空间;缺点:操作中将位示图的每个位转换成所对应的主存块的块号需要花费一定时间。
* `*`分段式存储管理的地址是二维的(因为作业被分成多个段)。
* `*`虚拟存储管理中的虚拟存储大小由2个因素决定:
+ `*`地址结构。
+ `*`实际总存储空间。
* `*`页面置换算法:
+ `*`最佳(Optimal,OPT)置换算法。
+ `*`先进先出(First In First Out,FIFO)置换算法。
+ `*`最近最久未用(Least Recently Used,LRU)置换算法。
+ 二次机会(Second Chance,SC)置换算法。
+ `*`时钟(Clock,CLOCK)置换算法。
+ 最近未用(Not Used Recently,NRU)置换算法。
#### 第4章 设备管理
* `*`设备管理的功能(任务):对独占设备的分配和回收、对独占设备的启动和信息传输、对磁盘的驱动调度、对缓冲区的管理、对虚拟设备技术的实现。
* `*`磁盘是容量大且可以断电后存储数据的外部存储设备,是:块设备、共享设备、用户设备(非标准设备)、直接存取设备(随机存取设备)、存储设备。
* `*`外部设备的分类:
+ `*`按设备信息交换的单位分类:
- `*`字符设备(慢速字符设备),如:鼠标、键盘、显示器、打印机。
- `*`块设备,如:磁盘、磁带、光盘、U盘。
+ `*`按设备资源特点分类:
- `*`独占设备(是一种临界资源,需互斥访问),使用静态分配,如:打印机、磁带机。
- `*`共享设备,使用驱动调度,如:软盘、硬盘、光盘。
- `*`虚拟设备,如:借助Spooling技术可以共享使用的独占设备。
+ `*`按设备地位分类:
- `*`系统设备(标准设备),如:鼠标、键盘、显示器、打印机。
- `*`用户设备(非标准设备),如:网卡、声卡、显卡、硬盘。
+ `*`按设备访问方式分类:
- `*`顺序存取设备,如:磁带。
- `*`直接存取设备(随机存取设备),如:磁盘。
+ `*`按设备使用特性分类:
- `*`输入输出设备,如:鼠标、键盘、显示器、打印机。
- `*`存储设备,如:磁带、磁盘。
* `*`设备I/O控制方式:
+ `*`程序查询方式。
+ `*`中断方式。
+ `*`直接主存存取(Direct Memory Access,DMA)方式。会出现“周期窃取”现象,或称“周期挪用”现象。
+ `*`通道方式。分为3种类型:字节多路通道、数组选择通道、数组多路通道。
- `*`通道命令字(Chanel Command Word,CCW)。
- `*`通道地址字(Chanel Address Word,CAW)。
- `*`通道状态字(Chanel Status Word,CSW)。
* `*`设备I/O软件管理建立在硬件之上,分为4个层次(自顶向下):
+ `*`用户级的I/O软件(I/O系统调用、Spooling技术)。
+ `*`与设备无关的I/O软件(接口、设备命名、保护、缓冲、分配、出错)。
+ `*`设备驱动程序(检查、转换、发出、响应、组织)。
+ `*`I/O中断处理程序(正常结束、异常处理、进程状态改变)。
+ `*`硬件(执行I/O传输)。
* 下层位上层提供服务;上层调用下层功能。
* `*`I/O中断请求自顶向下;I/O中断响应自底向上。
* `*`缓冲技术:单缓冲技术、双缓冲技术、多缓冲技术、缓冲池技术。
* `*`设备类绝对号是一种内部编号,不方便记忆,使用容易出错。
* `*`设备类相对号的优点:方便、灵活、安全。
* `*`设备独立性(设备无关性)指申请使用的设备与设备管理系统最后分配的设备无关。优点是:
+ `*`用户不必知道设备的绝对号,只需提出想使用设备的相对号,系统就可以根据用户要求找出一台空闲的且非分配的设备给用户。
+ `*`如果用户通过设备类相对号申请到的设备在运行种出现故障,系统可以自动从同种设备中选择一台空闲且好的设备来替代。
* `*`块号从0开始编号,柱面号、磁头号、扇区号从1开始编号。
* `*`设每个柱面上有n个磁道,每个磁道上有m个扇区,则:
+ `*`柱面号 = ceil ( (块号 + 1) / (n \* m) )
+ `*`磁头号 = ceil ( (块号 + 1) % (n \* m) / (m) )
+ `*`扇区号 = ceil ( (块号 + 1) % (n \* m) % (m) / (1) )
+ `*`块号 = (柱面号 - 1) \* (n \* m) + (磁头号 - 1) \* (m) + (扇区号 - 1) \* (1)
* `*`磁盘的最外层柱面为1号柱面;磁盘的最内层柱面为最大号柱面。
* `*`磁盘调度(先移动移动臂,后旋转磁盘):
+ `*`磁盘的移动臂调度算法:
- `*`先来先服务(First Come First Served)调度算法。
- `*`最短寻找时间优先(Shortest Seek Time First)调度算法。
- 单向扫描(Uni-Scan)调度算法,又称循环扫描(Circular Scan)调度算法。
- 双向扫描(Double Scan)调度算法。
- `*`电梯(Elevator)调度算法。
+ `*`磁盘的旋转调度算法:
- 扇区号相同、磁头号不同时,其中一个要等到下一圈调度。
* 脱机工作方式。
* `*`Spooling技术由3部分组成:
+ `*`输入井和输出井。输入井中的作业有4种状态:
- 输入状态。
- 后备状态。
- 执行状态。
- 完成状态。
+ `*`欲输入进程和缓输出进程。
+ `*`井管理进程。
* 虚拟设备是借助Spooling技术可以共享使用的独占设备。
+ 优点是:提高了I/O设备的存取效率、能够将独占设备虚拟成共享设备。
+ 缺点是:Spooling技术增加了系统的复杂性、输入井和输出井会占用较大的磁盘空间、用到输入缓冲区和输出缓冲区会占用较大的主存空间。
#### 第5章 文件管理
* 文件由2部分组成:文件体、文件说明。
* 文件的分类:
* 文件系统由3部分组成:与文件管理有关的软件、被管理的文件、实施文件管理所需的数据结构(如目录表、文件控制块、存储分配表等)。
* 文件系统的功能:
+ 文件的操作和使用。
+ 文件的结构及有关存取方法。
+ 文件的目录结构和有关处理。
+ 文件存储空间的管理。
+ 文件的共享和存取控制。
* 文件系统的优点:
+ 使用的方便性。
+ 数据的安全性。
+ 接口的统一性。
* `*`文件控制块(File Control Block,FCB)是为文件设置的一系列描述和控制信息。
* `*`文件目录由文件控制块组成。
本人从事网路安全工作12年,曾在2个大厂工作过,安全服务、售后服务、售前、攻防比赛、安全讲师、销售经理等职位都做过,对这个行业了解比较全面。
最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。
最后,我将这部分内容融会贯通成了一套282G的网络安全资料包,所有类目条理清晰,知识点层层递进,需要的小伙伴可以点击下方小卡片领取哦!下面就开始进入正题,如何从一个萌新一步一步进入网络安全行业。

### 学习路线图
其中最为瞩目也是最为基础的就是网络安全学习路线图,这里我给大家分享一份打磨了3个月,已经更新到4.0版本的网络安全学习路线图。
相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。

#### 网络安全工具箱
当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份**我自己整理的网络安全入门工具以及使用教程和实战。**

#### 项目实战
最后就是项目实战,这里带来的是**SRC资料&HW资料**,毕竟实战是检验真理的唯一标准嘛~

#### 面试题
归根结底,我们的最终目的都是为了就业,所以这份结合了多位朋友的亲身经验打磨的面试题合集你绝对不能错过!
详情docs.qq.com/doc/DSlhRRFFyU2pVZGhS