计算机操作系统读书笔记
- 格式:doc
- 大小:54.50 KB
- 文档页数:10
------------- ——第一章 --------- ——-------操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充,其主要作用是管理好这些设备。
操作系统的目标与应用环境有关。
操作系统的目标:1. 方便性 2. 有效性:提高系统资源的利用率,系统的吞吐量 3. 可扩充性4. 开放性:系统能遵循世界标准规范。
操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地堆各类作业进行调度,以及方便用户使用的程序的集合。
OS作为用户与计算机硬件系统之间接口的含义是:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。
或者说,用户在OS帮助下能够方便、快捷、可靠地操纵计算机硬件和运行自己的程序。
OS是铺设在计算机硬件上的多层软件的集合,它们不仅增强了系统的功能,还隐藏了对硬件操作的具体细节,实现了对计算机硬件操作的多个层次的抽象模型。
用户通过命令方式,系统调用方式,图标-窗口方式来实现与操作系统的通信。
处理机管理是用于分配和控制处理机。
主要功能:创建和撤销进程,对诸进程的运行进行协调,实现进程之间的信息交换,以及按照一定的算法把处理机分配给进程。
进程控制。
进程同步:主要任务是为多个进程(含线程)的运行进行协调,进程互斥式,进程同步式。
进程通信:任务是实现相互合作进程之间的信息交换。
存储器管理主要负责内存的分配和回收。
主要任务:为多道程序的运行提高良好的环境,提高存储器的利用率,方便用户使用,并能从逻辑上扩充内容。
功能:内存分配:主要任务是:(1) 为每道程序分配内存空间,使它们“各得其所”。
(2) 提高存储器的利用率,尽量减少不可用的内存空间( 碎片)。
(3) 允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。
(静态分配方式:固定内存大小位置,动态分配方式) 内存保护:主要任务是:①确保每道用户程序都仅在自己的内存空间内运行,彼此互不干扰。
②绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其它用户程序中去执行。
操作系统笔记(总17页)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March操作系统的定义:操作系统(Operating System, OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充操作系统的目标和作用在计算机系统上配置操作系统主要目标与计算机系统的规模和应用环境有关。
操作系统的目标方便性硬件只能识别机器代码(0、1)OS提供命令,方便用户使用计算机有效性使CPU、I/O保持忙碌,充分利用使内存、外存数据存放有序,节省空间合理组织工作流程,改善资源利用率,提高吞吐量可扩充性计算机技术的发展:硬件/体系结构/网络/InternetOS应采用层次化结构,便于扩充和修改功能层次和模块开放性支持网络环境,兼容遵循OSI标准开发的硬件和软件操作系统的作用1. 用户与计算机硬件系统之间的接口命令方式用户通过键盘输入联机命令(语言)系统调用方式用户程序通过系统调用,操纵计算机图形、窗口方式用户通过窗口、图标等图形界面操纵计算机2.计算机系统资源管理者4大类资源:处理机;存储器;I/O设备;信息(文件:程序、数据)3.对计算机资源的抽象(扩充机器)裸机:只有硬件的计算机,难以使用虚机器:在裸机增加软件(OS等),功能增强,使用方便推动操作系统发展的主要动力1.不断提高计算机资源利用率早期计算机很昂贵,为提高资源利用率,产生了批处理系统2.方便用户为改善用户上机、调试程序时的条件,产生了分时系统3.器件的不断更新换代OS随之更新换代,如:8位->16位->32位4.计算机体系结构的不断发展单处理机OS->多处理机OS->网络操作系统操作系统的发展过程无操作系统时代OS尚未出现,人们如何使用计算机人工操作方式人工操作方式的缺点用户独占全机CPU等待人工操作结果:资源利用率低下脱机输入输出系统低速设备纸带机/卡片机高速设备磁带/磁盘I/O速度提高,缓解了I/O设备与CPU的速度矛盾主机:用于计算的主计算机外围机:也是计算机,处理输入输出,使之不占用主机CPU时间外围机控制输入/输出输入:低速设备->高速设备输出:高速设备->低速设备输入和输出使用独立于主机的外围机,不占用主机的CPU时间,是脱机过程,因此叫做脱机输入/输出方式单道批处理系统计算机发展的早期,没有任何用于管理的软件,所有的运行管理和具体操作都由用户自己承担,任何操作出错都要重做作业,CPU的利用率甚低。
哈工大操作系统读书笔记在哈尔滨工业大学的计算机科学与技术专业的学习中,操作系统是我们学科的核心课程之一。
为了更好地掌握操作系统的基本原理和技术,我认真阅读了相关教材,并做了一些笔记。
一、操作系统的基本概念1. 操作系统定义:操作系统是控制计算机硬件和软件资源,管理用户程序运行,提供用户界面和应用程序开发环境的一种系统软件。
2. 操作系统功能:主要功能包括处理机管理、存储管理、文件管理、设备管理以及用户界面。
二、处理机管理1. 进程的定义:进程是程序的一次执行,是系统进行资源分配和调度的基本单位。
2. 进程的状态:包括新建、就绪、运行和阻塞四种状态。
3. 进程控制块PCB:用于描述进程的基本信息和运行状态。
4. 进程调度算法:包括先来先服务、最短作业优先、最短剩余时间优先等。
三、存储管理1. 内存分配方式:包括固定分区、可变分区、分页和分段。
2. 内存置换算法:包括先进先出、最近最少使用、最佳置换算法等。
3. 虚拟内存的概念:通过将内存和外存统一管理,为用户提供一个比实际内存大得多的虚拟内存空间。
四、文件管理1. 文件系统的概念:文件系统是操作系统中负责管理和存储文件信息的软件部分。
2. 文件的分类:按性质分为系统文件和用户文件;按内容分为文本文件和二进制文件;按存储方式分为顺序文件和随机文件。
3. 文件的访问方式:包括顺序访问和随机访问。
五、设备管理1. 设备驱动程序的概念:设备驱动程序是操作系统与硬件设备交互的接口,负责设备的初始化和释放、设备的读写操作以及设备的状态查询等。
2. 缓冲技术的概念:缓冲技术是解决I/O设备速度与CPU速度不匹配问题的一种方法,通过在内存中开辟一块缓冲区,暂时存放输入输出数据,以实现数据的同步传输。
3. 设备分配与回收:设备分配的主要任务是确定哪些进程可以使用哪些设备,并满足设备的互斥使用和独立性等约束条件;设备回收的任务是在进程终止时,将设备的使用权收回并重新分配给其他进程使用。
计算机系统导论——读书笔记——第⼆章信息的表⽰和处理第⼆章信息的表⽰和处理2.1 信息存储2.1.1 ⼗六进制2.1.2 字数据⼤⼩2.1.3 寻址和字节顺序1.地址:对象所使⽤的字节中最⼩的地址2.⼤端法:最⾼有效字节在前⼩端法:最低有效字节在前(⼤多Intel兼容机使⽤)3.发送⽅机器(内部代码)——>⽹络应⽤程序(⽹络标准)——>接收⽅机器(内部代码)4.⼩程序——打印程序对象的字节表⽰1 #include <stdio.h>2using namespace std;34 typedef unsigned char * byte_pointer;//定义类型:指向unsigned char的指针56void show_byte(byte_pointer start, size_t len){7 size_t i;8for(i = 0; i < len; ++i)9 printf(" %.2x", start[i]);//%.2x表⽰整数必须⽤⾄少两个数字的⼗六进制格式输出10 printf("\n");11 }1213void show_int(int x){14 show_byte((byte_pointer) &x, sizeof(int));15 }1617void show_float(float x){18 show_byte((byte_pointer) &x, sizeof(float));19 }2021void show_double(double x){22 show_byte((byte_pointer) &x, sizeof(double));23 }2425void show_pointer(void * x){//void*是特殊类型的指针,没有相关联的类型信息26 show_byte((byte_pointer) &x, sizeof(void *));27 }2829int main(){30int x;31float y;32double z;33while(scanf("%d %f %lf", &x, &y, &z)){34 show_int(x);35 show_float(y);36 show_double(z);37 show_pointer(&x);38 show_pointer(&y);39 show_pointer(&z);40 }41return0;42 }输⼊111-1-1.0-1.0123451.0011.001输出01 00 00 0000 00 80 3f00 00 00 00 00 00 f0 3f98 f5 bf ef fe 7f 00 0094 f5 bf ef fe 7f 00 0088 f5 bf ef fe 7f 00 00ff ff ff ff00 00 80 bf00 00 00 00 00 00 f0 bf98 f5 bf ef fe 7f 00 0094 f5 bf ef fe 7f 00 0088 f5 bf ef fe 7f 00 0039 30 00 00c5 20 80 3f6a bc 74 93 18 04 f0 3f98 f5 bf ef fe 7f 00 0094 f5 bf ef fe 7f 00 0088 f5 bf ef fe 7f 00 00我的电脑是MaxOS,可以看出它是64位系统,采⽤⼩端法表⽰5.可以通过在终端(mac是terminal,windows是命令⾏⼯具)执⾏命令man ascii得到⼀张ASCII字符码表,回车后运⾏结果如下ASCII(7) BSD Miscellaneous Information Manual ASCII(7)NAMEascii -- octal, hexadecimal and decimal ASCII character setsDESCRIPTIONThe octal set:000 nul 001 soh 002 stx 003 etx 004 eot 005 enq 006 ack 007 bel010 bs 011 ht 012 nl 013 vt 014 np 015 cr 016 so 017 si020 dle 021 dc1 022 dc2 023 dc3 024 dc4 025 nak 026 syn 027 etb030 can 031 em 032 sub 033 esc 034 fs 035 gs 036 rs 037 us040 sp 041 ! 042 " 043 # 044 $ 045 % 046 & 047 '050 ( 051 ) 052 * 053 + 054 , 055 - 056 . 057 /060 0 061 1 062 2 063 3 064 4 065 5 066 6 067 7070 8 071 9 072 : 073 ; 074 < 075 = 076 > 077 ?100 @ 101 A 102 B 103 C 104 D 105 E 106 F 107 G110 H 111 I 112 J 113 K 114 L 115 M 116 N 117 O120 P 121 Q 122 R 123 S 124 T 125 U 126 V 127 W130 X 131 Y 132 Z 133 [ 134 \ 135 ] 136 ^ 137 _140 ` 141 a 142 b 143 c 144 d 145 e 146 f 147 g150 h 151 i 152 j 153 k 154 l 155 m 156 n 157 o160 p 161 q 162 r 163 s 164 t 165 u 166 v 167 w170 x 171 y 172 z 173 { 174 | 175 } 176 ~ 177 delThe hexadecimal set:00 nul 01 soh 02 stx 03 etx 04 eot 05 enq 06 ack 07 bel08 bs 09 ht 0a nl 0b vt 0c np 0d cr 0e so 0f si10 dle 11 dc1 12 dc2 13 dc3 14 dc4 15 nak 16 syn 17 etb18 can 19 em 1a sub 1b esc 1c fs 1d gs 1e rs 1f us20 sp 21 ! 22 " 23 # 24 $ 25 % 26 & 27 '28 ( 29 ) 2a * 2b + 2c , 2d - 2e . 2f /30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 738 8 39 9 3a : 3b ; 3c < 3d = 3e > 3f ?40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 G48 H 49 I 4a J 4b K 4c L 4d M 4e N 4f O50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W58 X 59 Y 5a Z 5b [ 5c \ 5d ] 5e ^ 5f _60 ` 61 a 62 b 63 c 64 d 65 e 66 f 67 g68 h 69 i 6a j 6b k 6c l 6d m 6e n 6f o70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w78 x 79 y 7a z 7b { 7c | 7d } 7e ~ 7f delThe decimal set:0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 '40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 /48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 756 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ?64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 delFILES/usr/share/misc/asciiHISTORYAn ascii manual page appeared in Version 7 AT&T UNIX.BSD June 5, 1993 BSD(END)2.1.4 表⽰字符串1.⼗进制数字‘y’的ascii码正好是0x3y2.strlen(str)函数不计算终⽌的空字符(ascii码为0x00)3.字符编码⽅式:(1)ASCII (American Standard Code for Information interchange)(2)Unicode (Unique Code)(3)UTF-8 / UTF-16 / UFT-32 (Unicode Transformation Format)2.1.5 表⽰代码2.1.6 布尔代数(Boolean Algebra)简介1.布尔运算&对|有分配律:a&(b|c) = (a&b)|(a&c)布尔运算|对&有分配律:a|(b&c) = (a|b)&(a|c)2.位向量:长度为w,由0和1组成的串应⽤:表⽰有限集合/压位运算(例:[01101010]表⽰集合{1,3,5,6}),位向量掩码/屏蔽信号3.布尔环(Boolean ring),类似于整环/整数环“加法”逆元:^类似于+; 每个整数x有加法逆元-x使得x+(-x)=0,类似地,每个布尔元素a都有“加法逆元”a使得a^a=0; 有趣的性质:(a^b)^a=b 1//这是⼀个不需要第三个量的交换函数,不过它并没有性能上的优势2void inplace_swap(int *x, int *y){//*x = a, *y = b3 *x = *x ^ *y;//*x = a^b, *y = b4 *y = *x ^ *y;//*x = a^b, *y = a5 *x = *x ^ *y;//*x = b, *y = a6 }2.1.7 C语⾔中的位级运算:&, |, ^, ~2.1.8 C语⾔中的逻辑运算: &&, ||, !2.1.9 C语⾔中的移位运算:>>, <<1.逻辑右移(⾼位补0,⽆符号数进⾏逻辑右移)算数右移(⾼位补符号位,有符号数进⾏算数右移)(1)初级运算符[]().->(2)单⽬运算符(3)算数运算符(4)移位运算符(5)关系运算符(6)位级运算符(7)逻辑运算符(8)赋值运算符2.2 整数表⽰2.2.1 整形数据类型2.2.2 ⽆符号数的编码(unsigned)2.2.3 补码编码(two's-complement)1.<limits.h>库:INT_MIN, INT_MAX, UINT_MAX<stdint.h>库:intN_t, UintN_t (t = 16,32,64等)(我在xcode上没有include这两个库也能直接使⽤INT_MIN、int32_t等)2.有符号数的表⽰⽅法(1)补码(two's-complement):最⾼位权重为-2^(w-1)(2)反码(ones' complement):最⾼位权重为-(2^(w-1)-1)(3)原码(sign-magnitude):最⾼位为1表⽰所有其他位权重为负注:(2)(3)中0的表⽰法不唯⼀,有+0和-0两种2.2.4 有符号数和⽆符号数之间的转换(可能)改变数值,但不改变位表⽰1.补码转换为⽆符号数(w位):TMin <= x < 0, T2U(x) = x + 2^w0 <= x <= TMax, T2U(x) = x2.⽆符号数转换为有符号数(w位):0 <= x <= TMax, U2T(x) = xTMax < x <= UMax, U2T(x) = x - 2^w2.2.5 C语⾔中的有符号数和⽆符号数1.数字常量默认为有符号数,加上后缀u或U可创建⽆符号数常量2.类型转换的⽅式:(1)显式:强制类型转换(2)隐式:不同类型变量间赋值3.%d有符号⼗进制,%u⽆符号⼗进制,%o⼋进制,%x⼗六进制4.C语⾔对于同时包含有符号数和⽆符号数的表达式,会隐式地将有符号数转换为⾮负的⽆符号数 1/*2这是⼀个测试函数3注:TMin写成-2147483647-1⽽⾮-21474836484是因为limits.h中定义INT_MIN=-INT_MAX-1,以规避某些奇怪的现象5*/6 #include <cstdio>7using namespace std;89int main(){10 printf("-1 < 0u = %d\n", -1 < 0u);11 printf(" -1 = 0x%x \n", -1);12 printf(" 0u = 0x%x\n\n", 0u);1314 printf("2147483547 > (int)2147483648u = %d\n", 2147483547 > (int)2147483648u);15 printf(" 2147483547 = 0x%x \n", 2147483547);16 printf(" (int)2147483648u = 0x%x\n\n", (int)2147483648u);1718 printf("-2147483647-1u < 2147483647 = %d\n", -2147483647-1u < 2147483647);19 printf(" -2147483647-1u = 0x%x \n", -2147483647-1u);20 printf(" 2147483647 = 0x%x\n\n", 2147483647);2122 printf("-2147483647-1u < -2147483647 = %d\n", -2147483647-1u < -2147483647);23 printf(" -2147483647-1u = 0x%x \n", -2147483647-1u);24 printf(" -2147483647 = 0x%x\n\n", -2147483647);25return0;26 }运⾏结果如下-1 < 0u = 0-1 = 0xffffffff0u = 0x02147483547 > (int)2147483648u = 12147483547 = 0x7fffff9b(int)2147483648u = 0x80000000-2147483647-1u < 2147483647 = 0-2147483647-1u = 0x800000002147483647 = 0x7fffffff-2147483647-1u < -2147483647 = 1-2147483647-1u = 0x80000000-2147483647 = 0x800000012.4 浮点数2.4.1 ⼆进制⼩数2.4.2 IEEE浮点表⽰1.表⽰形式:(1)符号(sign)s: 表⽰+-(2)尾数(significand)M:⼆进制⼩数,取值范围为[1,2)或[0,1)(3)阶码(exponent)E:对浮点数加权,权重为2的E次幂2.编码:s编码符号sign s,exp编码阶码exponent E,frac编码尾数significand M3.三种情况(1)规格化的(noemalized): exp!=00...0 && exp!=11 (1)i. 阶码 E = exp - bias, bias = 2^(k-1)-1, k=exp的位数ii. 尾数 M = 1.xx...x = 1.frac的位(隐含的以1开头的表⽰)(2)⾮规格化的(denormalized): exp == 00 0i. 阶码 E = 1 - bias, bias = 2^(k-1)-1, k=exp的位数ii. 尾数 M = 0.xx...x = 0.frac的位iii.注意:0.0有两种表⽰⽅法+0.0和-0.0,符号位分别为0或1,其他位全部为0(3)特殊值: exp == 11 (1)i. ⽆穷:frac = 00...0, s=0或1表⽰+∞或-∞,能够表⽰溢出的运算结果,如x/0 ii. Nan(not a number): frac != 00...0, 表⽰⾮实数的运算结果,如根号-1,∞-∞4.三种情况的数字分布⾮规格化数字的阶码定义为E=1-bias可以补偿⾮规格化的尾数没有隐含的开头1,有助于数字表⽰的平滑转变;否则,在绝对值最⼤的⾮规格化数字(其⼆进制表⽰为0 00...0 11...1)和绝对值最⼩的规格化数字(其⼆进制表⽰为0 00...01 00...0)之间将存在跳跃2.4.3 数字⽰例1. 处理正浮点数时,若按照⽆符号整数解释他们的⼆进制表⽰,则可以发现它们的⼤⼩顺序不变;负浮点数只需要倒序。
Unix环境高级编程读书笔记Unix环境高级编程是一本经典的计算机编程指南,它深入探讨了Unix 操作系统的各个方面,并提供了大量有关高级编程和系统级编程的知识。
在本文中,我将根据这本书的内容,为您撰写一份读书笔记,希望能够帮助您更深入地理解Unix环境的高级编程。
1. Unix环境概述Unix操作系统诞生于20世纪70年代初,在经过几十年的发展之后,成为了当今世界上最流行的操作系统之一。
Unix系统以其稳定性、可靠性和安全性而闻名,被广泛应用于服务器、工作站和嵌入式系统中。
Unix环境高级编程这本书就是帮助读者深入理解Unix操作系统的各个方面,包括文件I/O、进程控制、信号处理、线程和内存管理等内容。
2. 文件I/O文件I/O是Unix编程中的基础,Unix环境高级编程中详细介绍了文件描述符、标准I/O库、文件和目录操作等内容。
这些知识对于理解Unix系统中的文件系统操作非常重要,可以帮助开发人员更好地处理文件和目录,提高程序的效率和稳定性。
3. 进程控制Unix系统以进程为核心,Unix环境高级编程深入探讨了进程的创建、终止、信号处理、进程间通信等内容。
理解这些内容可以帮助开发人员编写更加健壮和高效的多进程程序,提高系统的并发能力和响应速度。
4. 线程和同步Unix环境高级编程还介绍了线程的创建、同步、互斥和条件变量等内容。
线程编程是Unix系统中的重要部分,了解这些知识可以帮助开发人员编写更加高效和安全的多线程程序,提高系统的并发能力和性能表现。
5. 内存管理Unix系统的内存管理也是非常复杂的,Unix环境高级编程对内存分配、共享内存、内存映射等内容进行了深入讲解。
理解这些知识可以帮助开发人员更好地管理系统内存,避免内存泄漏和内存碎片问题,提高系统的稳定性和性能。
总结回顾通过阅读Unix环境高级编程这本书,我对Unix系统的各个方面有了更深入的了解。
文件I/O、进程控制、线程和内存管理等内容让我受益匪浅,我相信这些知识对我的编程能力会有很大的提高。
《深⼊理解计算机系统》读书笔记并发、并⾏和抽象并发concurrency是⼀个通⽤的概念:指同时具有多个活动的系统。
并⾏parallelism:指⽤并发使⼀个系统运⾏得更快。
并⾏可以在计算机系统的多个抽象层次上运⽤。
1. 线程级并发构建进程这个抽象,我们能够设计出同时执⾏多个程序的系统,这就导致了并发。
使⽤线程,我们能够在⼀个进程中执⾏多个控制流。
单处理器系统中,并发执⾏只是模拟出来的,是通过使⼀台计算机在他正在执⾏的进程间快速切换的⽅式实现的。
当构建⼀个由单操作系统内核控制的多处理器组成的系统时,就得到⼀个多处理器系统。
多处理器是将多个cpu集成到⼀个集成电路芯⽚上。
超线程(同时多线程)处理器是⼀项允许⼀个cpu执⾏多个控制流的技术。
如常规的处理器需要⼤约20000个时钟周期做不同的线程切换,⽽超线程处理器可以在单个周期的基础上进⾏切换。
这使得cpu可以更好的利⽤其处理资源。
多处理器的使⽤可以从两个⽅⾯提⾼系统性能。
⾸先,它减少了在执⾏多个任务时模拟并发的需要。
其次,它可以使应⽤程序运⾏的更快。
当然,这必须要求程序是以多线程⽅式来书写的,这些线程可以并⾏地⾼效执⾏。
2. 指令级并⾏在较低的抽象层次上,现代处理器可以同时执⾏多条指令的属性指令级并⾏。
基本思想是将⼀条指令所需要的活动划分为不同的步骤,将处理器的硬件组织成⼀系列的阶段,每个阶段执⾏⼀个步骤。
这些阶段可以并⾏的操作,⽤来处理不同的指令的不同部分。
其通过硬件设计,能够达到接近于⼀个时钟周期⼀条的指令的执⾏速率。
甚⾄更快,称为超标量处理器。
3. 单指令、多数据并⾏在最低的层次上,许多现代处理器拥有特殊的硬件,允许⼀条指令产⽣多个并⾏执⾏的操作,这种⽅式称为单指令、多数据SIMD并⾏。
如专门处理向量计算的处理器。
抽象。
抽象是计算机科学中最为重要的概念之⼀。
如⼀组函数的API等,类的封装,接⼝。
在处理器中,指令集结构提供了对实际处理器硬件的抽象。
计算机操作系统重点知识点整理1. 操作系统介绍操作系统是计算机系统的核心组成部分,负责管理和控制计算机硬件及软件资源,提供良好的用户界面和服务。
操作系统是计算机科学中的重要分支,研究和理解操作系统的基本知识点对于计算机专业人员至关重要。
2. 进程与线程进程是指在计算机中正在运行的程序的实例,它拥有独立的内存空间和系统资源。
线程是进程中的一个执行单元,多线程可以提高程序的执行效率和并发性。
重点知识点包括进程与线程的区别和联系、线程同步与互斥、进程调度算法等。
3. 内存管理内存管理是操作系统中重要的部分,包括内存分配、内存回收、虚拟内存等。
其中,虚拟内存可以扩展主存容量,使得计算机可以同时运行更多的程序。
重点知识点包括内存分页、段式内存管理、页面置换算法等。
4. 文件系统文件系统是操作系统中负责管理和控制文件的组织结构和存储空间的部分,提供对文件的读写和管理功能。
重点知识点包括文件目录结构、文件存储方式、文件权限管理等。
5. 输入输出设备管理输入输出设备管理是操作系统中与外部设备交互的部分,包括对输入设备和输出设备的控制和管理。
重点知识点包括缓冲区管理、设备驱动程序、中断处理等。
6. 文件系统与磁盘管理文件系统与磁盘管理是操作系统中重要的部分,涉及到磁盘的组织和管理、文件的存取与保护等。
重点知识点包括磁盘分区、磁盘调度算法、磁盘块分配算法等。
7. 进程通信与同步进程通信与同步是操作系统中重要的内容,用于实现多个进程之间的信息交换和协作。
重点知识点包括进程间通信的方式、进程的同步与互斥机制、死锁问题等。
8. 网络操作系统网络操作系统是运行在网络环境中的操作系统,可以管理和控制分布在不同节点上的计算机资源。
重点知识点包括分布式系统的架构、网络拓扑结构、网络安全等。
9. 安全与保护安全与保护是操作系统中非常重要的内容,涉及到系统资源的权限管理、数据的保护与加密、防止未授权访问等。
重点知识点包括访问控制模型、身份验证、防火墙等。
《计算机操作系统》MOOC笔记1-计算机系统概论南京⼤学的骆斌⽼师主讲的,考研可能会⽤得上计算机系统的组成计算机系统:包括硬件⼦系统和软件⼦系统硬件:借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是系统⼯作的实体CPU,主存储器,I/O控制系统,外围设备软件:各种程序和⽂件,⽤于指挥计算机系统按指定的要求进⾏协同⼯作包括系统软件、⽀撑软件和应⽤软件关键系统软件是:操作系统与语⾔处理程序计算机系统的⽤户视图计算机硬件系统组成中央处理器运算单元控制单元 :解译机器指令主存储器外围设备输⼊设备输出设备存储设备⽹络通信设备总线存储程序计算机体系结构存储器是这个模型的核⼼以运算单元为中⼼,控制流由指令流产⽣采⽤存储程序原理,⾯向主存组织数据流主存是按地址访问、线性编址的空间指令由操作码和地址码组成数据以⼆进制编码总线总线(Bus)是计算机各种功能部件之间传送信息的公共通信⼲线,它是CPU、内存、输⼊输出设备传递信息的公⽤通道计算机的各个部件通过总线相连接,外围设备通过相应的接⼝电路再与总线相连接,从⽽形成了计算机硬件系统按照所传输的信息种类,总线包括⼀组控制线、⼀组数据线和⼀组地址线内部总线:⽤于CPU芯⽚内部连接各元件系统总线:⽤于连接CPU、存储器和各种 I/O模块等主要部件通信总线:⽤于计算机系统之间通信(⽹络)为了加快通信效率,系统总线也是分级的,PCI连接块设备(较快),E(ISA)总线连接字符设备(较慢)。
中央处理器(CPU)中央处理器是计算机的运算核⼼(Core)和控制单元( Control Unit),主要包括:运算逻辑部件:⼀个或多个协运算器寄存器部件:包括通⽤寄存器、控制与状态寄存器,以及⾼速缓冲存储器(Cache)控制部件:实现各部件间联系的数据、控制及状态的内部总线;负责对指令译码、发出为完成每条指令所要执⾏操作的控制信号、实现数据传输等功能的部件存储器L0 L1 L2 L3 L4都是挥发性存储,加电存储,断电失效外围设备设备类型输⼊设备输出设备存储设备机机通信设备(本质上属于输⼊输出设备,但是不同⽹络设备块⼤⼩不⼀致(包,块,字))设备控制⽅式轮询⽅式:CPU忙式控制+数据交换中断⽅式:CPU启动外围设备/中断+数据交换DMA⽅式:CPU启动/中断,DMA独⽴进⾏数据交换软件系统组成系统软件:操作系统、实⽤程序、语⾔处理程序、数据库管理系统操作系统实施对各种软硬件资源的管理控制实⽤程序为⽅便⽤户所设,如⽂本编辑等语⾔处理程序把⽤汇编语⾔/⾼级语⾔编写的程序,翻译成可执⾏的机器语⾔程序⽀撑软件有接⼝软件、⼯具软件、环境数据库,⽀持⽤户使⽤计算机的环境,提供开发⼯具应⽤软件是⽤户按其需要⾃⾏编写的专⽤程序软件开发的不同层次计算机硬件系统:机器语⾔-操作系统之资源管理:机器语⾔+⼴义指令(扩充了硬件资源管理)操作系统之⽂件系统:机器语⾔+系统调⽤(扩充了信息资源管理)数据库管理系统:+数据库语⾔(扩充了功能更强的信息资源管理)语⾔处理程序:⾯向问题的语⾔计算机程序的执⾏过程操作系统的概念OS是计算机系统最基础的系统软件,管理软硬件资源、控制程序执⾏,改善⼈机界⾯,合理组织计算机⼯作流程,为⽤户使⽤计算机提供良好运⾏环境从⽤户⾓度看,OS管理计算机系统的各种资源,扩充硬件的功能,控制程序的执⾏从⼈机交互看,OS是⽤户与机器的接⼝,提供良好的⼈机界⾯,⽅便⽤户使⽤计算机,在整个计算机系统中具有承上启下的地位从系统结构看,OS是⼀个⼤型软件系统,其功能复杂,体系庞⼤,采⽤层次式、模块化的程序结构操作系统组成进程调度⼦系统进程通信⼦系统内存管理⼦系统设备管理⼦系统⽂件管理⼦系统⽹络通信⼦系统作业控制⼦系统从操作控制⽅式分类多道批处理操作系统,脱机控制⽅式分时操作系统,交互式控制⽅式实时操作系统从应⽤领域分类服务器操作系统、并⾏操作系统⽹络操作系统、分布式操作系统个⼈机操作系统、⼿机操作系统嵌⼊式操作系统、传感器操作系统计算机的资源-硬件资源处理器、内存、外设信息资源数据、程序资源的共享与分配⽅式资源共享⽅式独占使⽤⽅式并发使⽤⽅式资源分配策略静态分配⽅式动态分配⽅式资源抢占⽅式多道程序同时计算CPU速度与I/O速度不匹配的⽭盾,⾮常突出只有让多道程序同时进⼊内存争抢CPU运⾏,才可以够使得CPU和外围设备充分并⾏,从⽽提⾼计算机系统的使⽤效率多道程序设计的特点CPU与外部设备充分并⾏外部设备之间充分并⾏发挥CPU的使⽤效率提⾼单位时间的算题量多道程序的实现为进⼊内存执⾏的程序建⽴管理实体:进程如何使⽤资源:调⽤操作系统提供的服务例程(如何陷⼊操作系统)如何复⽤CPU:调度程序(在CPU空闲时让其他程序运⾏)如何使CPU与I/O设备充分并⾏:设备控制器与通道(专⽤的I/O处理器)如何让正在运⾏的程序让出CPU:中断(中断正在执⾏的程序,引⼊OS处理)计算机的操作⽅式OS规定了合理操作计算机的⼯作流程OS的操作接⼝——系统程序 OS提供给⽤户的功能级接⼝,为⽤户提供的解决操作计算机和计算共性问题的所有服务的集合OS的两类作业级接⼝脱机作业控制⽅式:作业控制语⾔联机作业控制⽅式:操作控制命令脱机作业的控制⽅式OS:提供作业说明语⾔⽤户:编写作业说明书,确定作业加⼯控制步骤,并与程序数据⼀并提交操作员:通过控制台输⼊作业OS:通过作业控制程序⾃动控制作业的执⾏例:批处理OS的作业控制⽅式,UNIX的shell程序, DOS的bat⽂件联机作业控制⽅式计算机:提供终端(键盘/显⽰器)⽤户:登录系统OS:提供命令解释程序⽤户:联机输⼊命令,直接控制作业步的执⾏例:分时OS的交互控制⽅式命令解释程序命令解释程序:接受和执⾏⼀条⽤户提出的对作业的加⼯处理命令当⼀个新的批作业被启动,或新的交互型⽤户登录进系统时,系统就⾃动地执⾏命令解释程序,负责读⼊控制卡或命令⾏,作出相应解释,并予以执⾏会话语⾔:可编程的命令解释程序(shell)图形化的命令控制⽅式多通道交互的命令控制⽅式命令解释程序的处理过程OS启动命令解释程序,输出命令提⽰符,等待键盘中断/⿏标点击/多通道识别每当⽤户输⼊⼀条命令(暂存在命令缓冲区)并按回车换⾏时,申请中断CPU响应后,将控制权交给命令解释程序,接着读⼊命令缓冲区内容,分析命令、接受参数,执⾏处理代码前台命令执⾏结束后,再次输出命令提⽰符,等待下⼀条命令后台命令处理启动后,即可接收下条命令操作系统的程序接⼝操作系统的程序接⼝——系统调⽤操作系统实现的完成某种特定功能的过程;为所有运⾏程序提供访问操作系统的接⼝系统调⽤的实现机制陷⼊处理机制:计算机系统中控制和实现系统调⽤的机制陷⼊指令:也称访管指令,或异常中断指令,计算机系统为实现系统调⽤⽽引起处理器中断的指令每个系统调⽤都事先规定了编号,并在约定寄存器中规定了传递给内部处理程序的参数系统调⽤实现:编写系统调⽤处理程序设计⼀张系统调⽤⼊⼝地址表,每个⼊⼝地址指向⼀个系统调⽤的处理程序,并包含系统调⽤⾃带参数的个数陷⼊处理机制需开辟现场保护区,以保存发⽣系统调⽤时的处理器现场操作系统的系统结构-OS构件内核、进程、线程、管程等设计概念模块化、层次式、虚拟化内核设计是OS设计中最为复杂的部分操作系统内核单内核:内核中各部件杂然混居的形态,始于1960年代,⼴泛使⽤;如Unix/Linux,及 Windows(⾃称采⽤混合内核的CS结构)微内核:1980年代始,强调结构性部件与功能性部件的分离,⼤部分OS研究都集中在此混合内核:微内核和单内核的折中,较多组件在核⼼态中运⾏,以获得更快的执⾏速度外内核:尽可能减少内核的软件抽象化和传统微内核的消息传递机制,使得开发者专注于硬件的抽象化;部分嵌⼊式系统使⽤层次结构操作系统的规模在计算机软件发展史上,OS是第⼀个⼤规模的软件系统1960年代,由OS开发所衍⽣的体系结构、模块化开发、测试与验证、演化与维护等研究,直接催⽣了软件⼯程这⼀新兴研究领域(另⼀个催⽣来源是 DB应⽤引发的需求与规格)。
操作系统的学习总结操作系统的学习总结操作系统的学习总结一经过一天半的战斗,终于把操作系统概论这本书给拿下了。
对于曾经专业课学过一些电脑硬件知识的我来说,这本书更加吸引我,以前一些听过的名词或高大上的词语在这本书上被详细介绍了,看的非常有收获。
下面来总结下自己的收获:首先第一章引论,在这里首先介绍了计算机系统,包括了软件和硬件两部分。
接下来就是第一章的重点:操作系统。
如下图:当前流行的操作系统有windows、unix、linux等。
微软的windows系统经历了一个从简单到复杂,从低级到高级的过程;从ms-dos---windows3---windows95---windows98---windowsnt---windows2000,再到现在win7、8甚至win10,微软始终在进步。
unix是一个通用的交互式分时操作系统,有at&t公司下属的bell实验室开发,在诞生后,源代码就一直公开,用户可以参与到unix的升级中。
unix的特点:1.短小精悍;2.可装卸的多层次文件系统;3.可移植性好;4.网络通信功能强。
linux是网络时代的产品,继承于unix,并做了很多改进。
第一章总领了全书,后面的二三四五六章都是讲的计算机的各种管理,总结如下图:在这里我把每章中的重点用红色的颜色标记出来了,这样在精读的时候就可以有重点的向外扩散,抓住考点,征服考试。
第一遍阅读画的有点粗糙,在精读的时候再大大的丰富下。
操作系统学习总结2这里的设备指的是i/o设备,即冯若依曼所提出的计算机五大部件的输入/输出部件,在五大部件中占其二,可想其重要行了,现在,开始我的总结之旅了i/o系统可以分为:微机i/o设备和主机i/o设备。
这两个之间的区别和联系,我还是不太清楚。
感觉微机i/o比主机i/o要简单。
对i/o系统的管理有以下几种管理方式:程序控制方式:这种方式好比学51单片机编汇时反复去检测一个端口是否有要求的信号来一样,简单,但对cpu利用率太太太太太低了。
操作系统心得体会作为计算机科学专业的学生,操作系统是一个必修的课程。
在学习操作系统的过程中,我不仅仅学习到了操作系统的基本原理和实现方法,还深入理解了计算机系统的底层原理。
在这里,我想分享一下我的操作系统心得体会。
1. 操作系统是计算机系统的核心操作系统是计算机系统中的核心软件,它承担着控制计算机硬件和软件资源的职责,并且提供友好的用户界面。
操作系统的作用十分重要,一旦操作系统出现故障,整个计算机系统就可能瘫痪。
2. 操作系统的层次结构操作系统是分层次结构的,每个层次都有各自的职责。
最底层是硬件层,主要负责处理器、内存、硬盘等硬件资源;中间层是操作系统内核,主要负责管理并分配硬件资源,提供给应用程序使用;最上层是用户层,用户可以通过用户界面与操作系统进行交互。
3. 操作系统的进程调度操作系统采用进程调度算法来决定哪个进程可以占用CPU资源。
常用的进程调度算法有先来先服务、短作业优先、最高优先级等。
操作系统需要通过进程调度算法来保证CPU资源的公平分配,并且确保每个进程都能获得自己需要的CPU时间片。
4. 操作系统的内存管理内存管理是操作系统中非常重要的一部分,操作系统需要管理计算机系统中的物理内存、虚拟内存、页表等资源。
内存管理可以通过分段、分页等方式,将内存分成多个区域,确保每个应用程序都能获得足够的内存资源。
5. 文件系统的组织和实现文件系统是操作系统中管理文件和目录的重要组成部分。
文件系统的组织和实现方式可以分为多种,如FAT、NTFS、EXT等。
文件系统提供了对文件和目录的管理和维护功能,确保文件系统的安全性和可靠性。
6. 操作系统的安全管理操作系统中的安全管理涉及到用户认证、访问控制、加密等多个方面。
操作系统需要确保只有合法用户才能登录并使用系统资源,而非法用户无法获取系统信息。
此外,操作系统还需要提供各种安全机制,如加密、访问控制等,来保护系统中的数据和资源。
总之,学习操作系统是必不可少的。