Skip to content

Commit 2bb6382

Browse files
committed
update README
1 parent 969ea96 commit 2bb6382

9 files changed

Lines changed: 115 additions & 104 deletions

File tree

OperatingSystem/1.操作系统简介.md

Lines changed: 23 additions & 19 deletions
Large diffs are not rendered by default.

OperatingSystem/2.进程与线程.md

Lines changed: 22 additions & 35 deletions
Large diffs are not rendered by default.

OperatingSystem/3.内存管理.md

Lines changed: 23 additions & 14 deletions
Large diffs are not rendered by default.

OperatingSystem/4.调度.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44

5-
在多道程序设计系统中,内存中有多个进程,每个进程要么正在处理器上运行,要么正在等待某些事件的发生,比如I/O完成。处理器调度的目的是:以满足系统目标(如响应时间、吞吐率、处理器效率)的方式,把进程分配到一个或多个处理器上执行。处理器(或处理器组)通过执行某个进程而保持忙状态,而此时其他进程处理堵塞状态。典型的调度有四种:
5+
在多道程序设计系统中,内存中有多个进程,每个进程要么正在处理器上运行,要么正在等待某些事件的发生,比如I/O完成。处理器调度的目的是:以满足系统目标(如响应时间、吞吐率、处理器效率)的方式,把进程分配到一个或多个处理器上执行。处理器(或处理器组)通过执行某个进程而保持忙状态,而此时其他进程处于堵塞状态。典型的调度有四种:
66

77
### 长程调度
88

@@ -41,13 +41,13 @@
4141

4242
多处理器系统分为以下几类:
4343

44-
- 松耦合、分布式多处理器、集群:又一系列相对自治的系统组成,每个处理器都有自身的内存和I/O通道。
44+
- 松耦合、分布式多处理器、集群:由一系列相对自治的系统组成,每个处理器都有自身的内存和I/O通道。
4545
- 专用处理器:I/O处理器是一个典型的例子。此时,有一个通用的主处理器,专用处理器由主处理器控制,并为主处理器提供服务。
4646
- 紧耦合多处理器:由一些列共享同一个内存并受操作系统完全控制的处理器组成。
4747

4848

4949

50-
多处理器中的调度设计三个相互关联的问题
50+
多处理器中的调度涉及三个相互关联的问题
5151

5252
- 把进程分配到处理器
5353

@@ -71,17 +71,19 @@
7171

7272
在多处理器线程调度和处理器分配的各种方案中,有四个比较突出的方法:
7373

74-
- 负载分配:进程不分配到某个特定的从处理器。系统维护一个就绪线程的全局队列,每个处理器只要空闲就从队列中选择一个线程。
74+
- 负载分配:进程不分配到某个特定的处理器。系统维护一个就绪线程的全局队列,每个处理器只要空闲就从队列中选择一个线程。
7575
- 组调度:一组相关的的线程基于一对一的原则,同时调度到一组处理器上运行。
7676
- 专用处理器分配:这种方法与负载分配方法正好相反,它通过把线程指定到处理器来定义隐式的调度。每个程序在其执行过程中,都分配给一组处理器,处理器的数量与程序中线程的数量相等。程序终止时,处理器返回总处理器池,以便分配给另一个程序。
7777
- 动态调度:在执行期间,进程中线程的数据可以改变,允许动态地改变进程中的线程数量,这就使得操作系统可以通过调整负载情况来提高利用率。
7878

7979

8080

81+
---
82+
8183

8284

8385
- [上一篇:3.内存管理](https://github.com/CharonChui/AndroidNote/blob/master/OperatingSystem/3.%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86.md)
84-
- [下一篇5.I/O](https://github.com/CharonChui/AndroidNote/blob/master/OperatingSystem/5.I:O.md)
86+
- [下一篇:5.I/O](https://github.com/CharonChui/AndroidNote/blob/master/OperatingSystem/5.I:O.md)
8587

8688

8789
---

OperatingSystem/5.I:O.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
DMA技术工作流程如下:
2020

21-
如果处理器想读或写一块数据时,它通过想DMA模块发送以下信息来给DMA模块发出一条命令:
21+
如果处理器想读或写一块数据时,它通过向DMA模块发送以下信息来给DMA模块发出一条命令:
2222

2323
- 请求读操作或写操作的信号,通过在处理器和DMA模块之间使用读写控制线发送。
2424
- 相关I/O设备地址,通过数据线发送。
@@ -33,7 +33,7 @@
3333

3434

3535

36-
高速缓冲存储器(cache memory)通常指比内存小且比内存块的存储器,它位于内存和处理器之间。这种高速缓冲存储器利用局部性原理来减少平均存储器的存取时间。同样的原理也适用于磁盘存储器。磁盘高速缓存是内存中为磁盘扇区设置的一个缓冲区,它包含有磁盘中某些扇区的副本。出现对某一特定扇区的I/O请求时,首先会进行检测,以确定该扇区是否在磁盘的告诉缓存中。若在则该请求可通过这个告诉缓存来满足。若不在,则把被请求的扇区从磁盘读到磁盘高速缓存中。
36+
高速缓冲存储器(cache memory)通常指比内存小且比内存块的存储器,它位于内存和处理器之间。这种高速缓冲存储器利用局部性原理来减少平均存储器的存取时间。同样的原理也适用于磁盘存储器。磁盘高速缓存是内存中为磁盘扇区设置的一个缓冲区,它包含有磁盘中某些扇区的副本。出现对某一特定扇区的I/O请求时,首先会进行检测,以确定该扇区是否在磁盘的高速缓存中。若在则该请求可通过这个高速缓存来满足。若不在,则把被请求的扇区从磁盘读到磁盘高速缓存中。
3737

3838

3939

@@ -46,6 +46,10 @@
4646

4747

4848

49+
---
50+
51+
52+
4953
- [上一篇:4.调度](https://github.com/CharonChui/AndroidNote/blob/master/OperatingSystem/4.%E8%B0%83%E5%BA%A6.md)
5054
- [下一篇:6.文件管理](https://github.com/CharonChui/AndroidNote/blob/master/OperatingSystem/6.%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86.md)
5155

OperatingSystem/6.文件管理.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ Android文件系统目录的顶层部分:
5454

5555

5656

57+
---
58+
5759

5860

5961
- [上一篇:5.I/O](https://github.com/CharonChui/AndroidNote/blob/master/OperatingSystem/5.I:O.md)

OperatingSystem/7.嵌入式系统.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Android是基于Linux内核的一个嵌入式系统,因此我们可以认为An
1818

1919

2020

21-
21+
---
2222

2323
- [上一篇:6.文件管理](https://github.com/CharonChui/AndroidNote/blob/master/OperatingSystem/6.%E6%96%87%E4%BB%B6%E7%AE%A1%E7%90%86.md)
2424
- [下一篇:8.虚拟机](https://github.com/CharonChui/AndroidNote/blob/master/OperatingSystem/8.%E8%99%9A%E6%8B%9F%E6%9C%BA.md)

OperatingSystem/8.虚拟机.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
尽管Java虚拟机(JVM)用“虚拟机”作为其名称的一部分,但其实现和用途与我们前面所讲的模型不同。虚拟机管理程序支持在主机上运行一个或多个虚拟机。这些虚拟机独立的处理工作负载,支持操作系统和应用,且在它们自身看来,访问一系列提供计算、存储和输入/输出的资源。Java虚拟机的目的是,无须更改任何Java代码就可在任意硬件平台的任意操作系统上,提供运行时空间。两种模型的目的都是通过使用某种程度的抽象化来实现平台无关性。
1818

19-
JVM可描述为一个抽象的计算设备,它包含指令集、一个PC(程序计数器)寄存器、一个用来保存变量和结果的栈、一个保存运行时数据和垃圾手机的堆、一个存储代码和常量的方法区。
19+
JVM可描述为一个抽象的计算设备,它包含指令集、一个PC(程序计数器)寄存器、一个用来保存变量和结果的栈、一个保存运行时数据和垃圾收集的堆、一个存储代码和常量的方法区。
2020

2121
JVM支持多个线程,每个线程都有自己的寄存器和堆栈区,且所有线程共享栈和方法区。
2222

@@ -81,9 +81,10 @@ DVM运行Java语言的应用和代码。标准的Java编译器将源代码(写
8181

8282
以上命令首先将jar包push到/data/app目录下,因为该目录一般用于存放应用程序,接着使用adb shell执行dalvikvm程序。dalvikvm的执行语法是: dalvikvm -cp 类路径 类名,从这里可以感觉到,dalvikvm的作用就像在pc上执行java程序一样。
8383

84-
84+
---
8585

8686
- [上一篇:7.嵌入式系统](https://github.com/CharonChui/AndroidNote/blob/master/OperatingSystem/7.%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%B3%BB%E7%BB%9F.md)
87+
- [下一篇:Android内核](https://github.com/CharonChui/AndroidNote/tree/master/OperatingSystem/AndroidKernal)
8788

8889

8990
---

0 commit comments

Comments
 (0)