Alex_McAvoy

想要成为渔夫的猎手

【线程的实现方式】

线程的实现可以分为两类:用户级线程(User-Level Thread,ULT)内核级线程(Kernel-Level Thread,KLT)

用户级线程中,有关线程管理的所有工作都由应用程序完成,内核意识不到线程的存在

阅读全文 »

【线程】

进程是一个资源的拥有者,因而在创建、撤销、切换过程中,系统要付出较大的时空开销,这就限制了系统中所设置进程的数目,且进程切换也不能太过频繁,这就限制了程序的并发程度

为解决上述问题,在进程的基础上引入了线程,由于进程的不仅拥有资源,其还是调度与分派的基本单位,因此将进程的两个属性分开,使得不把作为调度与分派的基本单位也同时作为拥有资源的单位

阅读全文 »

【概述】

进程通信是指进程间的信息交换,由于进程是系统分配资源的单位,因此各进程内存地址空间是独立的,一个进程不能直接访问另一个进程的地址空间

而进程的互斥与同步往往需要在进程间交换信息,信号量机制虽是有效的同步工具,但作为通信工具来说效率低、通信对用户不透明,因此常常归类为低级进程通信

阅读全文 »

【管程】

系统中的各种硬件资源和软件资源,都可用数据结构来抽象地描述其资源特性,即用少量信息和对资源所执行的操作来表征该资源,并忽视其内部结构和实现细节

由于每个要访问的临界资源的进程都要自备 wait(S) 操作与 signal(S) 操作,这就使大量的 $P$、$V$ 操作分散在各个进程中,不仅管理困难,还容易因同步操作顺序不当而产生死锁

阅读全文 »

【进程同步与进程互斥的实现】

进程同步

假设有两个并发执行的进程 $P_1$ 与 $P_2$,$P_1$ 中有语句 $S_1$,$P_2$ 中有语句 $S_2$,现们希望 $S_1$ 执行后再执行 $S_2$

阅读全文 »

【信号量机制】

利用硬件指令可以有效地实现进程互斥,但当进程资源忙碌时,其他访问进程必须不断地进行测试,处于一种忙等状态,不符合让权等待原则,造成了处理机的浪费

1965 年,Dijkstra 提出了信号量机制,在长期广泛的应用中,证明了其是一种卓有成效的进程同步机制,现广泛地利用于各种系统中

阅读全文 »

【软件实现方法】

软件实现方法,是在进入区设置和检查一些标志,来标明是否有进程在临界区中,若已有进程在临界区,则在进入区通过循环检查进行等待,进程离开临界区后,在退出区修改标志

单标志法

阅读全文 »

【临界资源与临界区】

虽然多个进程可以共享系统中的各种资源,但有许多进程一次只能被一个进程使用,这种一次仅允许一个进程使用的资源被称为临界资源,例如打印机、磁带机等

对临界资源的访问,应采取互斥的方式进行访问,在每个进程中访问临界资源的代码被称作临界区

阅读全文 »

【概述】

通过超文本传输协议(Hypertext Transfer Protocol,HTTP),定义了万维网客户进程(浏览器)如何向万维网服务器请求万维网文档,以及服务器如何将文档传送给浏览器

从层次的角度来看,HTTP 是面向事务的应用层协议,其基于 TCP 协议,保障数据的可靠传输,但其本身是无连接的,即 HTTP 虽然使用了 TCP 连接,但通信双方在交换 HTTP 报文时,不需要建立 HTTP 连接

阅读全文 »

【概述】

万维网(World Wide Web,WWW)是无数个网络站点和网络的集合,它们一起构成了因特网的最主要部分,其内核部分由以下三个标准构成:

  • 统一资源定位符 URL:标识万维网上的各种文档,并使每个文档在整个万维网的范围内具有唯一的标识符
  • 超文本传输协议 HTTP:基于 TCP 协议的应用层协议,是万维网客户程序与服务器程序间交互所必须严格遵守的协议
  • 超文本标记语言 HTML:文档结构的标记语言,使用一些约定的标记对页面上的各种信息、格式进行描述
阅读全文 »