文件标记 Ascii 含义
‘\n’ 10 换行
‘\0’ 0 c语言中表示字符串结束符
EOT 4 传输结束符

**EOF(End of File)**是一个宏定义,其真实值根据不同平台有差异,通常为-1。表示操作系统无法从数据源获取更多数据的情况,数据源一般为文件或流。

**EOT(End-of-Transmission)**传输结束字符,是一个控制字符,表示传输的结束。ascii码为04

‘\n’ 在文本文件中,除了最后一行,其余的每一行行尾都有一个换行符,即’\n’,ascii码为10

‘\0’ 等价于NULL,在c语言中,并不存在真正的字符串类型。c语言中的字符串其实是char*指向的地址到’\0’前的字符,字符串的长度并不包括’\0’。例如:

1
2
char *s = "hello\0world";			//表示字符串 hello \0位字符串结束符      
printf("%s",s); //输出hello

JavaScript 简介

JavaScript (也称为JS)是一种高级的,解释型的编程语言。

简洁性

其语法简洁,具有很高的抽象层次,只需很少量的代码就可实现复杂的逻辑交互,支持面向对象,命令式,函数式等编程思想。在JS中,函数也是一种类型,可以作为参数传递给某个函数。

1
2
3
4
5
<script>
//定义一个匿名求和函数,并将其存放到f变量中
var f = function (a, b) { return a + b };
console.log(f(12,12)); //输出24
</script>

安全性

为了保证足够的安全性,语言本身不支持文件I/O,例如读取,修改本地文件等。但可以通过宿主环境实现文件I/O功能,如通过FileReader对象可以实现文件读取。

通用性

目前JS已经被世界主流浏览器所支持,比如:Chrome, Firefox, Safari, Opera,IE 等。

越来越多的网站采用了JS来实现复杂的网页交互,数据验证等。

发展前景

Google开发的V8引擎,直接将JS代码翻译为及机器代码,极大地提高了JS的运行速度,运行缓慢已不在是JS的短板。

Node.js,使JS可以用于服务器端开发。

Electron,是GitHub开发的开源框架,采用Node.js作为后端,Chromium作为前端,是开发跨平台应用的的利器。

使用Electron开发的跨平台应用由:微软的Visual Studio Codd (VScode)

Atom

指针传递:传递的指针只包含数组的起始地址,要使用数组还应传出数组长度信息; 数组名传递:数组名称依旧是一个指针,和方法1本质是一样的,只是书写形式不一样。

阅读全文 »

1962 年,Corbato 首次提出多级反馈队列(Multi-level Feedback Queue, MLFQ),应用于兼容时分共享系统(CTSS)。

多级反馈队列需要解决两方面的问题:

  1. 优化周转时间,这通过先执行短工作来实现。
  2. 降低响应时间,像轮转这样的算法降低了响应时间,但周转时间很差。
阅读全文 »

早期系统

操作系统曾经是一组函数(实际上是一个库),在内存中(在本例中,从物理地址0开始),然后有一个正在运行的程序(进程),在目前物理内存中(本例中,从物理地址 64KB 开始),并使用剩余内存。

截屏2021-07-17 下午6.22.05
阅读全文 »

比例份额(proportional-share)调度程序,也称公平份额(fair-share)调度程序。比例份额算法基于一个简单的想法:调度程序的最终目标是,确保每个工作获得一定比例的 CPU 时间,而不是优化周转时间和响应时间。

彩票调度是一个非常优秀的比例调度程序。

基本概念:彩票数表示份额

彩票数(ticket)代表了进程(或用户或其他)占用了某个资源的份额。例如:假设两个进程 A 和 B,A 拥有 75 张彩票,B 拥有 25 张。因此我们希望 A 占用 75% 的 CPU 时间,而 B 占用 25%。

阅读全文 »

c语言文件打开模式

以c string 方式打开

文件打开模式 含义
“r” 以只读方式打开文件,该文件必须存在
”w“ 只写方式创建并打开一个空文件,若存在同名文件,则丢弃全部数据,作为一个空文件
“a” 附加模式(append),只写打开文件,在文件末尾写入数据,若文件不存在,则创建该文件。重定位操作(fseekfsetposrewind)将被忽略。
“r+” 读或修改:打开的文件可读可写,但该文件必须存在。
“w+” 写或修改:创建一个空文件进行读取或写入。如果已经存在同名文件,则将其内容丢弃,作为一个空文件。
“a+“ 附加或修改:打开文件进行读或写,所有输出操作均在文件末尾写入数据。重新定位操作(fseekfsetposrewind)会影响下一次读取。如果文件不存在,则创建该文件。
阅读全文 »

调度指标

周转时间

T周转时间=T完成时间-T到达时间

如果所有任务在同一时间到达,那么 T完成时间 = 0,T周转时间 = T完成时间

先进先出(FIFO)

(1) 假设有 3 个工作 A,B和C在大致在同一时间到达,A 比 B 早一点,B 比 C 早一点,假设每个工作的运行 10s,计算周转时间?

阅读全文 »

通过配置密钥,可以免密登录远程主机。

在需要登录远程主机的终端输入命令:

阅读全文 »

基本技巧:受限直接执行

截屏2021-07-14 上午11.54.34

上述方式产生的问题:

  • 操作系统如何确保程序不做任何我们不希望它做的事,同时仍然高效地运行它。
  • 当运行一个进程时,操作系统如何让它停下来并切换到另一个进程。
阅读全文 »
0%