自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 操作系统--内存管理(二)交换

进程需要在内存中以便执行。不过,进程可以暂时从内存中交换(swap)出来到备份存储上。当需要再执行时在调回到内存中。例如,加入有一个CPU调度算法采用轮转发的多道程序环境。当时间片已到,内存管理器开始讲刚刚执行的进程换出,将另一个进程换入到刚刚释放的内存空间中。同时,CPU调度器可以将时间判分配给其他已在内存中的进程,当每个进程用完时间片,它将 与另一个进程相交换。在理想情况下,内存管理器可以以足...

2020-02-13 17:21:36 723

原创 操作系统--内存管理(一)

前面讲CPU的时候,我们讨论了一组进程如何共享CPU。这是由于CPU调度的结果,才能提高CPU的使用效率和计算机对用户的响应速度。但是,为了实现这一性能改进,必须将多个进程保存在内存中;也就是说,必须共享内存。这里,我们将讨论各种内存管理的方法。内存管理算法有很多,从简单的裸机方法,到分页和分段策略。各种方法都有其优点和缺点。为特定系统选择内存管理方法依赖于很多因素,特别是系统的硬件设计。正如大...

2020-02-12 18:05:08 205

原创 操作系统-- 死锁(小结)

如果两个或更多的进程永久等待某个事件而该事件只能由这些等待进程的某一个引起,那么会出现死锁状态。从原理上来说,有三种方法可以处理死锁:使用一些协议来预防或避免死锁,确保系统永远都不会进到死锁状态。允许系统进入死锁状态,检测死锁,并恢复。忽略所有的问题,并假设系统中永远都不会出现死锁。这种方法被绝大多数的系统所采用,包括UNIX。当且仅当系统内的四个必要条件同时成立时(互斥、占有并等待、非...

2020-02-09 18:55:53 198

原创 操作系统--死锁--死锁恢复

8.7 死锁恢复当死锁检测算法确定死锁已存在,那么可以采用多种措施。一种措施是通知操作员死锁发生,以便操作人员人工处理死锁。另一种措施是让系统从死锁状态中自动恢复过来。打破死锁有两个方法。一个方法是简单地终止一个或多个进程以打破循环等待。另一个方法是从一个或多个死锁进程那里抢占一个或多个资源。8.7.1 进程终止有两个方法通过终止进程以取消死锁。不管用哪种,系统都会回收分配给被终止进程的所有...

2020-02-09 18:35:58 1506

原创 操作系统--死锁(三)预防

从原理上来说,有三种方式可以处理死锁问题:可使用协议从预防或避免死锁,确保系统决不会进入死锁状态。可允许系统进入死锁状态,然后检测它,并加以恢复。可忽略这个问题,认为死锁不可能在系统内发生。这种方法为绝大多数操作系统如UNIX所使用。这里讲简单描述每种方法。为了确保死锁不会发生,系统可以采用死锁预防或死锁避免方案。死锁预防是一组方法,以确保至少一个必要条件不成立。这些方法通过限制如何申请...

2020-02-09 11:41:14 614 2

原创 操作系统-- 死锁(一)

在多道程序设计环境下, 多进程可能竞争一定数量的资源。一个进程申请资源, 如果资源不可用, 那么进程进入等待状态。如果所申请的资源被其他等待进程所占,那么该等待进程有可能无法改变状态, 这种情况称为 死锁(deadlock)。最好的死锁例子据说是 Kansas立法机构与20实际早期通过的一个法规,其中说到“当两列列车在十字路口逼近时, 它们要完全停下来, 且在一列列车开走之前另一列列车不能启动”...

2020-02-09 09:01:16 134

原创 操作系统--进程同步(一)

协作进程是可以与在系统内执行的其他进程互相影响的进程。互相协作的进程可以直接共享逻辑地址空间(包括代码和数据),或者值通过文件共享数据。 前一种情况可通过轻量级进程或线程的使用来实现。共享数据的开发访问会导致产生数据不一致。在这里,我们讨论各种确保共享同一逻辑地址空间的协作进程能有序执行并维护数据一致性的机制。背景开发了一种系统模型,它包括若干 协作顺序进程(cooperating seque...

2020-02-08 11:02:24 865

原创 操作系统--CPU调度(二)

6.2 调度准则不同的CPU调度算法具有不同属性,且可能对某些进程更为有利。为了选择算法以使用于特定情况,必须分析各个算法的属性。为了比较CPU调度算法,分析员提出了许多准则,用来进行比较的特征对确定最佳算法有很大影响。这些准则包括如下:CPU使用率:需要使CPU尽可能忙。CPU使用率从0% 到 100%。对于真实系统,它应从40% (请负荷系统)到90%(重负荷使用的系统)。吞吐量:如...

2020-02-06 18:49:45 622

原创 操作系统--CPU调度(一)

CPU调度室多道程序操作系统的基础。通过在进程之间切换CPU,操作系统可以提高计算机的生产效率。接下来会展示多个不同CPU的调度算法。还要阐述为特定系统选择算法的问题。6.1 基本概念多道程序设计的 目标是在任何时候都有一个进程在运行,以使CPU使用了最大化。在单处理器系统中,每次允许一个进程运行;任何其他进程必须等待直到CPU空闲且能被调度为止。多道程序设计的思想比较简单。进程被执行知道它...

2020-02-05 12:57:21 561

原创 操作系统--Java线程

不同于操作系统,Java是在语言级提供了线程创建和管理支持功能的为数不多的一种语言(真的吗?)。不过由于线程是由Java虚拟机(JVM)而不是由用户级库或内核来管理的,所以很难清楚地将Java线程规划为用户级或内核级。 这里 ,将Java线程作为严格用户级或内核级模型的另一种选择。 其实 Java线程是映射到底层内核线程的。所有Java程序至少由一个控制线程组成。即使一个只包含main方法的简单...

2020-02-04 18:59:45 114

原创 操作系统--Linux线程

Linux内核在2.2版本中引入了线程机制。Linux提供了fork,这是具有传统进程复制功能的系统调用。Linux还提供了系统调用clone,其功能类似于创建一个线程。clone与fork的行为类似,它不是创建调用进程的复制,而是创建一个独立进程以共享原来调用进程的地址空间。通过共享父进程的地址空间,clone任务能像独立线程一样工作。由于Linux 内核进程的特定表示方式,所以允许共享地址空...

2020-02-04 18:36:44 74

原创 操作系统---若干线程问题

5.3.1 系统调用fork和exec前面有所讨论过系统调用 fork 如何用于创建独立的、重复的进程。在多线程程序中,系统调用fork和exec的语义变化。如果程序中的一个线程调用fork,那么新进程会复制所有线程还是新进程只有单个线程? 有的UNIX系统有两种形式的fork, 一种复制所有线程,另一种只复制调用了系统调用 fork的线程。 系统调用exec 的工作方式与第四章所述的方式通常相...

2020-02-04 12:38:44 169

原创 操作系统---线程(一)

进程模型假设进程是一个具有单个控制线程的执行程序。现在许多线性操作系统都提供单个进程包含多个控制线程的特征。本章引入了与多线程计算机系统相关的概念,包括有关Pthread API 和 Java线程的讨论。5.1 概述线程, 有时称为 轻量级进程(lightweight process, LWP),是CPU使用的基本单位;它由线程ID、进程计数器、寄存器集合和堆栈组成。它与属于同一进程的其他线程...

2020-02-03 21:13:10 193

原创 操作系统--进程(六)

4.6 客户机–服务器系统通信假设一个用户需要访问位于某个服务器上的数据。例如,一个用户需要知道位于服务器A上的一个文件的行、字和字符的总数。这种请示由远程服务器A处理, 它访问文件,计算所需结果,最后将真实数据传给用户。4.6.1 套接字套接字(socket)可定义为通信的端点。一对通过网络通信的进程需要使用一对套接字, 即每个进程各有一个。套接字由IP地址和端口号连接组成。通常, 套接字...

2020-02-03 16:57:17 121

原创 操作系统--进程(进程间通信)

Mach作为基于消息的操作系统的例子。Mach内核支持多任务的创建和删除, 这里的任务与进程相似,但能有多个控制的创建和删除,这里的任务与进程相似,但能有多个控制线程。Mach的绝大多数通信,包括绝大多数系统调用和所有任务间信息,是通过消息实现的。消息通过邮箱(Mach称为端口)来发送和接收。即使系统调用也是通过消息进行的。每个任务在创建时,也创建了两个特别邮箱: 内核(kernel) 邮...

2020-01-31 20:40:22 109

原创 操作系统--进程操作(五)

4.4 进程协作执行在操作系统内的并发进程可以是独立进程或协作进程。 如果一个进程不能影响或被在系统内执行的其他进程所影响, 那么该进程是独立的。显然, 不与其他任何进程共享数据(临时或永久)的进程 是独立的。另一方面, 如果一个进程能影响或被在系统内执行的其他进程所影响,那么该进程是协作的。显然,与其他进程共享数据的进程是协作进程。人可能需要提供环境以允许进程协作,这有许多理由:信息共享...

2020-01-31 18:56:44 290

原创 操作系统--进程(四)

4.3 进程操作系统内的进程能并发执行,它们必须动态地被创建和删除。 因此, 操作系统必须提供某种机制(或工具) 以创建和终止进程。4.3.1 进程创建进程在其执行过程中, 能通过系统调用(create-process)创建多个新进程。 创建进程称为父进程, 而新进程称为 子进程。 这些新进程的每一个可以再创建其他进程, 从而形成了进程树。通常进程 需要一定的资源(如CPU时间、内存、文件...

2020-01-31 10:49:41 155

原创 操作系统--进程管理(二)

进程调度多道程序设计的目的是 无论何时都有进程在运行, 从而使CPU利用率达到最大化。分时系统的目的是在进程间频繁切换 CPU, 以便用户在程序运行时能与其交互。单处理器系统只能有一个运行进程。如果存在多个进程,需要等待CPU空闲并重新调度。4.2.1 调度队列进程进入系统时, 会被加到 作业队列中。 该队列包括系统中的所有进程。 驻留在内存中就绪 的等待运行的进程保存在 就绪队列 表上...

2020-01-30 18:30:52 334

原创 操作系统--进程管理(一)

进程前言系统由一组进程组成: 操作系统进程执行系统代码 ,而用户进程执行用户代码。 通过(多个)CPU在进城之间的切换(多路复用),所有这些进程都有可能并发执行, 从而操作系统能使计算机更为高效。4.1 进程概念进程和作业这两个概念在本博文中是相同的。4.1.1 进程进程是执行中的程序, 这是一种 非正式的说法。进程不只是程序代码。 进程包括 当前活动, 通过 程序计数器 的值和 处...

2020-01-29 18:31:38 199

原创 大数据面试-redis(一)

遇到的字节跳动面试:一、redis为什么那么快?主要有一下几点:纯内存操作单线程操作,避免频繁上下文切换采用了非阻塞I/O多路复用机制二、关于非阻塞I/O多路复用简单来说, 就是我们的redis-client 在操作的时候, 会产生不同时间类型的socket。 在服务端,有一段 I/O多路复用程序, 将其置入队列中。然后, 文件时间分派器, 依次去队列中取, 转发到不同的时间处理...

2020-01-29 10:20:56 83

原创 大数据面试总结--redis

遇到的字节跳动面试:一、redis为什么那么快?主要有一下几点:纯内存操作单线程操作,避免频繁上下文切换采用了非阻塞I/O多路复用机制二、关于非阻塞I/O多路复用简单来说, 就是我们的redis-client 在操作的时候, 会产生不同时间类型的socket。 在服务端,有一段 I/O多路复用程序, 将其置入队列中。然后, 文件时间分派器, 依次去队列中取, 转发到不同的时间处理...

2020-01-29 10:19:40 88

原创 密码学数学背景(三)--数论

3.1 模运算 模运算,又称为‘时钟运算’。如果Mildred 说她 10:00 到家, 而她迟到了13个小时, 那么她什么时候回家, 她的父亲等她几个小时呢? 这就是模12 运算。 23模12等于11: (10+13) mod 12 =23 mod 12 = 11 mod 12 另一种写法认为 23 和 11 的模12 运算相等: 23=(有三道横杠)11(mod 12) 本质上,...

2020-01-27 16:45:45 309

原创 密码学数学背景(一)--复杂性理论

复杂性理论提供了一种分析不同密码技术和算法的**计算复杂性**(computational complexity) 的方法。它对密码算法和技术进行比较, 然后确定它们的安全性。信息论就告诉我们, 所有的密码算法(除了一次一密乱码本) 都能被破译。 复杂性 理论告诉我们在宇宙包扎前它们能都被破译。2.1 算法的复杂性 算法的复杂性即运行它所需要的计算能力。 算法的计算复杂性常常用两个变量来 ...

2020-01-27 16:16:47 1443

原创 哈希一致性

前言一致性哈希算法由 麻省理工学院于 1997年提出, 是一种特殊的哈希算法, 在移除或添加一个服务器时,能尽可能小的改变 已存在的服务请求与处理请求服务器之间的映射关系。一致性哈希解决了简单哈希算法在分布式 **哈希表**(Distributed Hash Table, DHT) 中存在的动态伸缩等问题。一、概述 在解决分布式系统负载均衡的问题时, 可以使用hash算法让固定的部分请求...

2020-01-26 21:38:12 119

原创 密码学数学背景(一)---信息论

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2020-01-26 12:43:32 1172

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除