File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Load Diff Large diffs are not rendered by default.
Load Diff Large diffs are not rendered by default.
Load Diff Large diffs are not rendered by default.
Original file line number Diff line number Diff line change 22
33
44
5- 在多道程序设计系统中,内存中有多个进程,每个进程要么正在处理器上运行,要么正在等待某些事件的发生,比如I/O完成。处理器调度的目的是:以满足系统目标(如响应时间、吞吐率、处理器效率)的方式,把进程分配到一个或多个处理器上执行。处理器(或处理器组)通过执行某个进程而保持忙状态,而此时其他进程处理堵塞状态 。典型的调度有四种:
5+ 在多道程序设计系统中,内存中有多个进程,每个进程要么正在处理器上运行,要么正在等待某些事件的发生,比如I/O完成。处理器调度的目的是:以满足系统目标(如响应时间、吞吐率、处理器效率)的方式,把进程分配到一个或多个处理器上执行。处理器(或处理器组)通过执行某个进程而保持忙状态,而此时其他进程处于堵塞状态 。典型的调度有四种:
66
77### 长程调度
88
4141
4242多处理器系统分为以下几类:
4343
44- - 松耦合、分布式多处理器、集群:又一系列相对自治的系统组成 ,每个处理器都有自身的内存和I/O通道。
44+ - 松耦合、分布式多处理器、集群:由一系列相对自治的系统组成 ,每个处理器都有自身的内存和I/O通道。
4545- 专用处理器:I/O处理器是一个典型的例子。此时,有一个通用的主处理器,专用处理器由主处理器控制,并为主处理器提供服务。
4646- 紧耦合多处理器:由一些列共享同一个内存并受操作系统完全控制的处理器组成。
4747
4848
4949
50- 多处理器中的调度设计三个相互关联的问题 :
50+ 多处理器中的调度涉及三个相互关联的问题 :
5151
5252- 把进程分配到处理器
5353
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---
Original file line number Diff line number Diff line change 1818
1919 DMA技术工作流程如下:
2020
21- 如果处理器想读或写一块数据时,它通过想DMA模块发送以下信息来给DMA模块发出一条命令 :
21+ 如果处理器想读或写一块数据时,它通过向DMA模块发送以下信息来给DMA模块发出一条命令 :
2222
2323 - 请求读操作或写操作的信号,通过在处理器和DMA模块之间使用读写控制线发送。
2424 - 相关I/O设备地址,通过数据线发送。
3333
3434
3535
36- 高速缓冲存储器(cache memory)通常指比内存小且比内存块的存储器,它位于内存和处理器之间。这种高速缓冲存储器利用局部性原理来减少平均存储器的存取时间。同样的原理也适用于磁盘存储器。磁盘高速缓存是内存中为磁盘扇区设置的一个缓冲区,它包含有磁盘中某些扇区的副本。出现对某一特定扇区的I/O请求时,首先会进行检测,以确定该扇区是否在磁盘的告诉缓存中。若在则该请求可通过这个告诉缓存来满足 。若不在,则把被请求的扇区从磁盘读到磁盘高速缓存中。
36+ 高速缓冲存储器(cache memory)通常指比内存小且比内存块的存储器,它位于内存和处理器之间。这种高速缓冲存储器利用局部性原理来减少平均存储器的存取时间。同样的原理也适用于磁盘存储器。磁盘高速缓存是内存中为磁盘扇区设置的一个缓冲区,它包含有磁盘中某些扇区的副本。出现对某一特定扇区的I/O请求时,首先会进行检测,以确定该扇区是否在磁盘的高速缓存中。若在则该请求可通过这个高速缓存来满足 。若不在,则把被请求的扇区从磁盘读到磁盘高速缓存中。
3737
3838
3939
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
Original file line number Diff line number Diff 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 )
Original file line number Diff line number Diff 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 )
Original file line number Diff line number Diff line change 1616
1717尽管Java虚拟机(JVM)用“虚拟机”作为其名称的一部分,但其实现和用途与我们前面所讲的模型不同。虚拟机管理程序支持在主机上运行一个或多个虚拟机。这些虚拟机独立的处理工作负载,支持操作系统和应用,且在它们自身看来,访问一系列提供计算、存储和输入/输出的资源。Java虚拟机的目的是,无须更改任何Java代码就可在任意硬件平台的任意操作系统上,提供运行时空间。两种模型的目的都是通过使用某种程度的抽象化来实现平台无关性。
1818
19- JVM可描述为一个抽象的计算设备,它包含指令集、一个PC(程序计数器)寄存器、一个用来保存变量和结果的栈、一个保存运行时数据和垃圾手机的堆 、一个存储代码和常量的方法区。
19+ JVM可描述为一个抽象的计算设备,它包含指令集、一个PC(程序计数器)寄存器、一个用来保存变量和结果的栈、一个保存运行时数据和垃圾收集的堆 、一个存储代码和常量的方法区。
2020
2121JVM支持多个线程,每个线程都有自己的寄存器和堆栈区,且所有线程共享栈和方法区。
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-- -
You can’t perform that action at this time.
0 commit comments