30天自制操作系统(20)

DAY20_API1.程序整理目标:实现由应用程序对操作系统功能的调用(即API,也叫系统调用)。 2.显示单个字符的API(1)目标:显示单个字符的API。

发布于 操作系统

30天自制操作系统(19)

DAY19_应用程序1.type命令 在Windows的命令行中,有一个叫做type的命令,输入“type 文件名”就会显示出文件的内容。

发布于 操作系统

循环赛赛程安排

一、问题重述设有n个运动员要进行网球循环赛。设计一个满足下列条件的比赛日程表: 每个选手必须与其他n-1个选手各赛一次; 每个选手一天只能赛一次; 当n是偶数时,循环赛进行n-1天。 当n是奇数时,循环赛进行n天。

发布于 算法

30天自制操作系统(18)

DAY18_dir命令1.控制光标闪烁(1) 在Windows中,只有可以接受键盘输入的窗口有光标闪烁,而其他的窗口中是不显示光标的。 对HariMain进行改写

发布于 操作系统

30天自制操作系统(17)

DAY17_命令行窗口1.闲置任务 即使不改写程序,也能自动在适当的LEVEL运行适当的任务,这样的操作系统才是优秀的操作系统 因此,一般情况下可以让任务休眠,但当所有LEVEL中都没有任务存在的时候,就需要HTL了。接下来我们就按照这个要求来改写mtask.c。 如果“所有LEVEL中都没有任务”就会出问题,那我们只要避免这种情况发生不就可以了吗?这类似于我们写定时器的时候所采用的“卫兵”的思路。

发布于 操作系统

30天自制操作系统(16)

DAY16_多任务(2)1.任务管理自动化 充分做好多任务机制的基础上,再利用多任务逐步完善操作系统本身。 如果我们想要运行三个任务的话,就必须改写mt_taskswitch的代码。如果能像当初定时器和窗口背景的做法一样更好。

发布于 操作系统

30天自制操作系统(15)

DAY15_多任务(1)1.挑战任务切换 多任务:多个应用程序同时运行的状态(也就是同时打开好几个窗口的状态)。 实际上这些程序==并没有在同时运行==,只是看上去好像是在同时运行一样。

发布于 操作系统

插入排序(Insert Sort)、归并排序(Merge Sort)和快速排序(Quick Sort)

一、算法简介1.插入排序算法(Insert Sort Algorithm) 直接插入排序(Straight Insertion Sort)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次==从无序表中取==出第一个元素,将它==插入到有序表中==的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。 我们需要做的工作只有两个: 取出无序区中的第1个数,并找出它在有序区对应的位置。 将无序区的数据插入到有序区;若有必要的话,则对有序区中的相关数据进行移位。

发布于 算法

30天自制操作系统(14)

DAY14_高分辨率及键盘输入1. 继续测试性能 之前我们通过“消除位移处理”缩短时间,对于很多“位移”情况,改进才能看到效果。所以我们使用大量的定时器,然后对性能进行比较。 2.提高分辨率(1) 由于画面切换中我们要使用BIOS,所以就需要改写asmhead.nas的“画面模式设定”部分了。

发布于 操作系统

30天自制操作系统(13)

DAY13_定时器(2)1. 简化字符串显示 将“涂背景色、写字符、完成刷新”写进一个函数,更方便使用void putfonts8_asc_sht(struct SHEET *sht, int x, int y, int c, int b, char *s, int l) { boxfill8(sht->buf, sht->bxsize, b, x, y, x + l * 8 - 1, y + 15); putfonts8_asc(sht->buf, sht->bxsize, x, y, c, s); sheet_refresh(sht, x, y, x + l * 8, y + 16); return; }

发布于 操作系统
13456