首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
东小夫
掘友等级
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
5
文章 5
沸点 0
赞
5
返回
|
搜索文章
最新
热门
键盘--扫描码--ASCII码--显示器上的字符
在上一篇,我讲了键盘操作会产生扫描码以及如何解析Pause键和Print Screen键的扫描码。 在这一篇,我会说清楚”键盘上的输入为什么会出现在显示器上“。 我们敲击键盘,产生扫描码。 操作系统获取扫描码,把扫描码解析成ASCII码。 操作系统把ASCII码写入显存,显示器…
敲击键盘后字符怎么出现在显示器
我们每敲击一次电脑键盘,按键对应的字符就会出现在显示器上。这中间发生了什么?请听我慢慢细说。 人对按键的操作,从两个维度去描述,一个是“动作”,另一个是“内容”。 按下一个按键,松开一个按键,按下一个按键并且保持按住状态一段时间(长按),这些都是动作。 每个按键和动作组合起来,…
进程调度的实现
进程调度在时钟中断中完成,最核心的语句是mov esp, [proc_ready],意思是把从时钟中断中回到用户进程时选择下一个要执行的进程的堆栈。 怎么选择下一个要执行的进程的堆栈呢?这就是进程调度所做的事情。所谓调度,就是安排。 本文只实现根据进程优先级调度的算法。 时钟中…
怎么实现系统调用
有些事情只有操作系统才能做,比如,获取系统内存、创建文件。用户进程想获取系统内存或创建文件,只能向操作系统求助,对操作系统说,“操作系统大神,请帮我创建一个文件”。操作系统收到用户进程的请求后会创建一个文件并将文件句柄等返回给用户进程。 在上面这个通俗例子中,用户进程通过操作系…
怎么实现进程切换
进程是一个运行中的程序实体,拥有独立的地址空间和逻辑控制流。 sayHi就是一个函数,它一旦运行起来,就是进程。 独立的逻辑控制流,是说这个进程就像独占一个CPU一样。每个进程使用CPU的时间不是连续的,但它们的指令运行却是前后衔接的,不会受到其他进程的指令对它的指令和数据大的…
汇编函数阅读笔记
这是memset的函数原型,在C语言中使用这个函数时,需按这个原型传参。 memset的功能是:用size个char类型的数据填充初始内存地址是p_dst的这片内存空间。 要在其他文件中使用这个函数,需在本文件使用global memset将此函数导出。 dl是第二个参数cha…
操作系统---在内核中重新加载GDT和堆栈
用BIOS方式启动计算机后,BIOS先读取引导扇区,引导扇区再从外部存储设备中读取加载器,加载器读取内核。进入内核后,把加载器中建立的GDT复制到内核中。 这篇文章的最大价值也许在末尾,对C语言指针的新理解。 在BOOT(引导扇区)加载LOADER(加载器)。 在LOADER中…
操作系统---IO权限管理和敏感指令
使用IOPL设置一个特权级的用户程序对所有端口的访问权限,使用I/O位图对一个特权级的用户程序设置个性化的端口访问权限(能访问部分端口、不能访问另外的端口)。 用户程序的CPL<IOPL,用户程序能访问所有端口。否则,从I/O位图中查找用户程序对端口的访问权限。 IO…
操作系统--特权级切换
有4个层次的特权级,从高到低依次是:0级、1级、2级、3级。切换特权级是指从0级转移到1级、或从1级转移到3级。总之,是指从一个特权级转移到了另外一个不同的特权级。 两个指令call和iret。 一个CPU特性:特权级变换时会将一个特权级的堆栈复制到另外一个特权级堆栈。 只有使…
操作系统--怎么使用中断
中断发生时,操作系统会为当前的任务建立一个快照,陷入内核,把CPU的控制权交给内核。内核趁这个机会做一些工作,比如调度执行其他任务。这只是中断的作用之一。 使用中断有一套固定的流程,掌握它即可。流程大概如下: 初始化工作是对主从8259A的两类端口赋值。这两类端口是:ICW和O…
下一页
个人成就
文章被点赞
12
文章被阅读
15,172
掘力值
589
关注了
11
关注者
6
收藏集
0
关注标签
5
加入于
2021-02-04