调度算法:FCFS算法(先进先出)短任务优先SPN/SRT(短进程优先):可以是可抢占的(最短剩余时间)或者是不可抢占的;最优的等待时间;可能导致饥饿;需要预知执行时间最高相应比算法HRRN:(等待时间+执行时间)/执行时间;不可抢占;需要预知执行时间轮循算法Round Robin:公平;时间片设置;上下文切换;每一个进程都能得到及时相应;有一部分额外开销(1%以下)多级反馈
进程:一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程包含:程序的代码程序处理的数据程序计数器中的值,指示下一条将运行指令一组通用的寄存器的当前值,堆、栈一组系统资源(打开的文件)进程与程序的联系程序是产生进程的基础程序的每次运行构成不同的进程进程是程序功能的体现通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可以包括多个程序进
覆盖技术:在较小的可用内存中运行较大的程序。实际上是以时间延长来换取空间节省交换技术:最好采用动态地址映射的方法虚拟内存管理技术(虚存技术):1、大的用户空间2、部分交换3、不连续性页面置换算法:最优页面置换算法(理想)、先进先出算法(效率低)、最近最久未使用算法(需要查找,开销大)、时钟页面置换算法(环形链表)、二次机会法(只读页只有一次机会,访问的页有两次机会)、最不
初始化:类型+名称+值声明:类型+名称赋值:名称=值int a;a=10;int b=20;变量在同一个作用域不能重名数据类型:基本数据类型:数值型:整型:byte[1],short[2],int[4],long[8];Java各整型有固定的范围和字段长度,不受OS的影响,以保证Java的可移植性Java的整型常量默认为int型,声明long型常量须后加‘l’或‘L’浮点型float[4],dou
计算机体系结构/内存分层体系cpu:运算器、寄存器、控制器、MMU内存时延(由快到慢):寄存器、cache miss/fill、主存、虚拟内存地址空间&地址生成定义:物理地址空间:硬件支持的地址空间逻辑地址空间:一个运行的程序所拥有的内存范围生成:1、逻辑地址到物理地址的映射2、MMU查找逻辑地址映射表3、主存将逻辑地址的内容加载安全检查:确保程序之间不会相互干扰,操作的内存是合法的连续内
操作系统包括:shell(外壳,对用户提供服务)、Kernel(内核,负责管理计算机资源)Kernel的特征:1、并发:同时存在多个运行的程序并行与并发的区别:并发:在一段时间内多个程序运行并行:在一个时间点上有多个程序运行2、共享:同时访问和互斥共享3、虚拟:使每一个程序或者用户都在使用一台计算机4、异步:程序的执行不是一贯到底,而是走走停停,行前推进的速度不可预知,但只要运行环境相同,操作系统
客户/服务器方式(C/S方式)与对等方式(P2P方式)C/S方式:服务器总是处于运行状态,并等待客户的服务请求。服务器具有固定端口号(如HTTP服务器的默认端口号为80)而运行服务器的主机也具有固定的IP地址P2P方式:没有固定的服务请求者和服务提供者,被称为对等方(即时通信,P2P流媒体,分布式存储)动态主机配置协议DHCP作用:对局域网中的主机自动配置网络配置信息(IP地址,子网掩码,默认网关
jdk,jre,jvm的关系jdk=jre+java开发工具jre=jvm+核心库类jvm:java虚拟机环境变量:在dos的任意目录,都可以使用java和javac1、先配置JAVA_HOME指向jdk的文件目录2、在path环境变量,增加%JAVA_HOME%\bin文档注释:注释内容可以被jdk提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档,一般写在类基本格式
运输层:为运行在不同主机上的应用进程提供直接的通信服务计算机网络中进行通信的真正实体是位于通信两端主机中的进程在逻辑上应用进程间在运输层上直接通信运输层端口号运行在计算机上的进程使用进程标识符PID来标志,不同的操作系统使用不同的继承标识符。使用统一的方法对TCP/IP体系的应用进程进行标识。端口号使用16比特表示,取值范围为0~65535熟知端口号:0~1023,TCP/IP协议中最重要的一些应
原理:在物理内存中开辟一块空间,将磁盘中的文件复制进来进行操作FILE *fopen(const char *falename,const char *mode);//第一个参数是文件路径,第二个参数是打开方式FILE *pFile = fopen("G:\\c语言基础学习\\c.txt","r");//使用函数打开文件,并保存在pFile中打开方式:"r"("rt"):只读形式,文件必须存在"w
按位取反:~按位与:&按位或:|按位异或:^移位运算符:<< >>
内存分区栈区:局部变量,默认1M,自动申请,自动释放,局部作用域堆区:malloc的空间,程序员申请,程序员释放,不释放的话在程序结束时会自动回收静态全局区:全局变量,static变量,会自动初始化为0,生命周期是整个程序字符常量区:只读,空间由系统申请释放,字符串常量生命周期是整个程序,数值常量立即数一般不占用额外的存储空间,全局变量用const定义后在常量区代码区:只读,由系统管理命令行参数:
自动变量:局部变量:定义在代码段{}中的变量,生命周期与作用域就在其所在的代码段内自动变量默认有auto修饰,auto是自动变量的声明符,静态变量:存储在静态区/静态全局区/静态存储区:内存特点是定义时自动初始化为0,生命周期是整个程序,运行时在加载资源阶段分配空间全局变量:定义在全局位置,是静态变量全局变量与局部变量重名时,在局部变量的作用域内,局部变量生效全局变量的初始化只能用常量初始化所有文
多文件编程源文件:一般将定义的函数变量等放在源文件中头文件:放源文件中函数的声明以及宏等声明主文件:包含主函数的文件引用头文件:引用系统头文件用尖括号<>,引用自定义的头文件用双引号""尖括号实在编译器环境下去寻找头文件,双引号是在当前工程目录下寻找头文件#include "code.h"include(预处理指令):在编译中起作用本质是单纯的替换,与宏定义一样主函数中对函数的调用
typedef(类型重命名)typedef int myint;//把int重命名为myint,myint与int用法一样typedef unsigned int unint;typedef int* pint;//指针类型也可以重命名typedef struct Node{ int a; }_Node;//结构体也可以重命名,但这样写之后就不能在后面定义变量void fun(int a){ in
隐式类型转换:1、在表达式中有无符号的char和short都会自动转换成int类型进行运算,float会转成double2、包含两种数据类型的任何运算中,两个值都被转化成两种类型中较高的类型然后再计算(long double > doube > unsigned lolg long > long long > unsigned long > long > uns
关键字:unionunion Un{ int i; char c; short s;}un1,un2;//声明起来跟结构体一样union Un un3={34};//初始化时只初始化最前面的成员union Un un3={.i=34};//也可以使用这种方式定义最大的变量特点:所有成员共享内存、修改一个变量,其他成员也会改变枚举:enum作用:声明代表整数常量的名称,目的是提高代码的可读性与
网络层:实现网络互联,进而实现数据包在各网络之间的传输服务1、面向连接的虚电路服务(可靠通信由网络来保证)必须建立网络层的连接——虚电路VC通信双方沿着已建立的虚电路发送分组目的主机的地址仅在建立连接的阶段使用,之后每个分组的首部只需携带一条虚电路的编号通信结束后需要释放之前所建立的虚电路2、无连接的数据报服务可靠通信由用户主机来保证不需要建立网络层连接每个分组可走不同的路径每个分组的首部必须携带
结构体struct Stu{ char name[10]; int age; short high;};//注意花括号外要有分号定义在全局区那么所有地方都可以直接使用,定义在函数内那么只能在函数内部使用不同的结构体用名字区分声明struct Stu1{ char name[10]; int age; short high;}stu1,stu2;//可以在定义完结构体后在分号前输入变量名
字符:ASCII码表、ASCII拓展表(特定行业的符号温度、人民币符号等)、宽字符类(汉字、特殊字符)输出时要用单引号标识,否则默认为变量名,使用%c输出printf("%c",'a');putchar('a');声明与定义字符变量char c='a';//注意加单引号,否则就变成了变量赋值char b='w';c='b';//可以用字符进行赋值c=b;//也可以用变量进行赋值注意字符型只包含一个
(特别乱,不建议观看)链路(Link):从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换地点数据链路(Data Link):把实现通信协议的硬件和软件加到链路上,就构成了数据链路数据链路层以帧为单位传输数据功能:封装成帧:数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧透明传输:数据链路层对上层交付的传输数据没有任何限制差错检测:比特差错:比特在传输过程中1变成0,0变成1
模块化编程:用于完成特定任务的程序代码单元把一个小功能封装成一个独立的代码段(函数)函数的功能:1、增加复用性 2、增加可读性函数类型:没有的时候写void,不写函数类型在c++中会报错,在C语言中默认是int参数:没有的时候写void(不写的时候表示参数不确定,写的时候表示不接受任何参数)函数名字:不能以数字开头,可以用英文字母、下划线开头,后
所有程序/软件,是由操作系统统一调配的,操作系统是程序的运行环境,运行的多个程序之间,内存是不会交叉的。程序结束后操作系统会释放其使用的资源。内存分为栈区(堆栈)、堆区、全局区、字符常量区、代码区栈区的空间是由操作系统申请,在变量的生命周期结束时由系统释放,效率稍微低一点普通的变量申请等都是在栈区堆区的空间是由程序员随时申请、由程序员随时释放,默认在1M左右(可在编译器中修改),效率相对较高堆区
指针:是一种数据类型,指针装的是地址类型的变量int * a;//声明指针的方式: 类型+*+变量名,*a表示一个指针变量,a是指针的名字指针在没有赋值的情况下不允许使用,没有赋值的指针叫做野指针int a=12;int* p=&a;//指针变量的初始化,p中装的是地址,*p表示指针变量,p的地址与p的值不同(&p!=p)指针类型要与被赋值的变量数据类型对应,否则编译器就会警告指针
数组:数据的集合或者变量的集合特点:类型相同、空间连续一维数组:声明:类型+变量名+[数据的个数]int a[10];//声明了int型的数组,数组的名字是a,里面有10个元素注:1、元素的个数必须是整型常量,大小不超过120万字节,不能是0或者负数2、方括号表示声明的是数组变量3、数组中元素从0开始到n-14、新特性数组的长度可以用变量定义,但数组的长度不会随变量变化,在定义时变量是多大数组的长
switch case int order;//定义一个变量 switch (order)//order的结果是switch需要匹配的标签 { case 1://order与case后的值匹配,匹配成功则执行case后面的语句 printf("");//需要执行的代码,可以有多条 break; case 2: printf(""); break; case 3:
选择判断:if语句if(条件)//条件是0为假,非0为真,为真时执行下面的语句,本行没有分号{ code;//满足条件执行的语句}else if(条件)//可以有多个else if,当有一个判断成立时,不再进行剩下的判断{ code;}else//当不满足以上所有条件时执行else中的语句{ code;}注:1.条件不要写成60<=a<=70的形式,本句的意义是60<=a返
表达式是一种有值的语法结构,它是由运算符将变量、常量、函数调用返回值结合而成常量变量表达式、算数表达式、赋值表达式、关系表达式(0或1)、逻辑表达式(0或1)、复合表达式逗号表达式:最右侧的值是逗号表达式的结果(1,2,3,4,a)//逗号表达式的形式c=(a=2,4,b=a);//括号内执行顺序是从做到右,c的值为最右边表达式的值,即2语句:表达式加一个分号就是语句
特点:重点掌握基本概念,具体的物理层协议了解即可目的:解决在各种传输媒体上传输比特0和1的问题主要任务:机械特性:指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置电气特性:指明在接口电缆的各条线上出现的电压的范围功能特性:指明某条线上出现的某一电平表施何种意义过程特性:指明对于不同功能的各种可能时间的出现顺序传输媒体:在物理层之下,不在物理层中导引型传输媒体:同轴电缆、双绞线、光纤、
流程结构:顺序、循环、分支、goto一、顺序结构:从上到下每一条语句都执行二、循环结构:重复执行循环语句中的内容1.while循环while(条件运算)//每次都判断运算结果是否为真,是则执行一次内部的内容,否则跳出循环{ code;//需要循环的代码}注:当内容中只有一条语句时可以不加花括号,但为了方便阅读建议加上不要在while后直接加分号,容易形成死循环,死循环后按ctrl+c强制终止在编
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号