程序设计20231311课程 计算机

一个操作系统的设计与实现——第5章 加载内核

一直以来,我们都在使用汇编语言对MBR编程,但对于操作系统这样的复杂程序来说,使用汇编语言是比较困难的。本章将实现操作系统内核的加载与进入。 5.1 读硬盘的实现原理 操作系统存储于硬盘中,现在需要将其读出至内存。想要读硬盘,就需要依次进行以下操作: 设定读取的扇区数 设定起始扇区号 发送读硬盘命令 ......
内核 系统

一个操作系统的设计与实现——第9章 硬盘驱动

操作系统应当具备读写硬盘的能力。因此,本章将要实现的是硬盘驱动。硬盘驱动由两个函数构成:读硬盘函数与写硬盘函数。 9.1 读硬盘 想要读硬盘,就需要提供以下三个信息: 起始扇区号 读取的扇区数 数据存储的地址 需要注意的是:读取的扇区数只能是一个8字节的整数。 由于读硬盘需要使用大量的端口读写指令, ......
硬盘 系统

一个操作系统的设计与实现——第6章 显卡驱动

进入内核以后,应该做些什么呢?本章将实现一个最容易看到效果的模块:显卡驱动。 6.1 什么是驱动 驱动这个词听起来很高大上,但实际上很简单,就是硬件的接口函数。在软件工程中,可以使用接口封装和简化设计,硬件也是一样。例如:想要读硬盘,需要很多指令设定好几个端口,然后等待硬盘就绪,最后才能读硬盘。这一 ......
显卡驱动 显卡 系统

一个操作系统的设计与实现——第8章 内存管理系统

计算机上的任何程序,包括操作系统自己,都需要使用内存。因此,操作系统需要实现内存管理系统,以进行内存的分配和回收。 在我们的操作系统中,内存管理系统由两部分组成:页分配器与页回收器。本章将实现这两个部分。 8.1 从虚拟地址到物理地址 回顾CPU对内存地址的转换过程: 使用段寄存器中的段选择子,在G ......
系统 管理系统 内存

一个操作系统的设计与实现——第10章 任务(一):共享内核

一直以来,我们的操作系统在启动后,运行的都是Kernel.c中的main函数。只运行这一个函数是不够的,操作系统应当有能力加载并运行其他程序。 从本章开始,将使用四章的篇幅讨论操作系统如何加载并运行任务。这里的任务(Task)与进程(Process)是同义词,在操作系统领域中,任务这个词更为常用,请 ......
内核 任务 系统

一个操作系统的设计与实现——第13章 任务(四):任务回收

在前面的两章中,我们的操作系统均不支持任务回收,所以任务不能退出。本章将要实现的是任务回收功能。 13.1 任务回收的原理 如果一个任务位于任务队列中,其就会被运行。所以,如果一个任务的运行已经结束,它就应该从任务队列中删除。 仅仅将任务从任务队列中删除是不够的,这是因为任务还持有一些内存没有释放, ......
任务 系统

一个操作系统的设计与实现——第11章 任务(二):0特权级任务

上一章中,我们的操作系统已经支持内核共享,这为任务的加载和运行做好了准备。 本章将要实现的是0特权级任务的加载与任务切换。 11.1 任务切换的原理 11.1.1 协同式与抢占式任务切换 如果CPU上只运行着Kernel.c的main函数,那么情况非常简单,只需要不断执行下一条指令即可。然而,如果现 ......
任务 特权 系统

一个操作系统的设计与实现——第12章 任务(三):3特权级任务

特权级是保护模式的核心概念之一,但我们的操作系统一直没有引入这个概念。这是因为,特权级只有在3特权级任务存在时才有意义。本章将要实现的是3特权级任务的加载与任务切换。 12.1 特权级 12.1.1 特权级的功能 特权级(Privilege Level),是保护模式中用于限制任务权限的机制。特权级有 ......
任务 特权 系统

一个操作系统的设计与实现——第2章 主引导记录

2.1 BIOS 当按下开机键的那一刻,发生了什么呢? 这是一个百废待兴的时刻,所有的硬件设备都刚启动,并没有做好准备,甚至连CPU自己都是。此时,就需要一些外力帮助CPU工作起来。具体来说,在CPU刚启动时,其CS:IP被硬件电路设定为f000:fff0。这个地址并非指向内存,而是指向主板的一个非 ......
系统

一个操作系统的设计与实现——第1章 什么是操作系统

1.1 引言 什么是操作系统呢? 有些读者可能会像曾经的笔者一样,认为操作系统是"一种图形界面";在学习了Linux操作系统后,认为操作系统也可以是"一种命令行"。而不同种类,不同版本的操作系统,则是"不同的图形界面",或是"不同的命令行语法"。 那么,以Linux操作系统为例,读者是否想过这些问题 ......
系统

程序结构

程序的描述方式 1.自然语言 使用人类语言直接描述程序 IPO I=Input=输入 P=Process=处理 O=Outpyt=输出 2.流程图 3.伪代码 程序的组织结构 1.顺序结构:按程序语句的自然顺序,从上到下,依次执行每条语句的程序 print('输入输出语句也是典型的顺序结构')nam ......
结构 程序

读程序员的制胜技笔记10_可口的扩展

1. 可扩展性 1.1. 土耳其的一句谚语:“路到眼前必有车” 1.1.1. “别为还没到来的事情烦恼” 1.2. 单纯的高性能并不能使一个系统具有可扩展性,你需要让所有方面的设计都得能够迎合越来越多的用户 1.3. 没有一个单一的方案可以解决我们所有的问题,我们需要把所有用来解决问题的方法放在我们 ......
程序员 笔记 程序 10

C语言程序作业1

5.9 使用if-else语句编程,将输入的百分制成绩score转换成相应的五分制成绩后输出。 90<=score<=100 输出:A 80<=score<90 输出:B 70<=score<80 输出:C 60<=score<70 输出:D 0<=score<60 输出:E 如果score不在0~ ......
语言程序 语言 程序

入门乐理(音律屋课程笔记)

认识钢琴键盘与音名 钢琴88键,7个白键和5个黑键为一组,去掉最左侧三个键,最右侧1个键,共7组 两个黑键和五个黑键组成一组 音名:CDEFGAB 升降号与还原号 ......
乐理 音律 课程 笔记

2023-2024-1 20211306 密码系统设计与实现课程学习笔记9

20211306 密码系统设计与实现课程学习笔记9 任务详情 自学教材第6章,提交学习笔记 知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容 “我在学习XXX知识点,请你以苏格拉底的方式对我进行提问,一次一个问题” 核 ......
课程学习 20211306 密码 课程 笔记

计算机网络

https://blog.csdn.net/qcrao/article/details/120278587 https://zhuanlan.zhihu.com/p/372798949#:~:text=因为发送缓冲区满导致write ()%2Fsend ()一直无法返回,这个可以通过setsocko ......
计算机网络

四、基本数据类型和计算(三)

四、基本数据类型和计算(三) 1、枚举变量 1)通过案例体现枚举类型的作用 ​ 假设要为我们的游戏装备设置稀有度属性,应该如何设计 装备级别 变量名 普通 normal 高级 high 稀有 rare 史诗 epic 传说 legend 神话 myth 不使用枚举变量,使用常量方式设置 #inclu ......
类型 数据

2023-2024-1 20231405《计算机基础与程序设计》第七周学习总结

2023-2024-1 20231405《计算机基础与程序设计》第七周学习总结 作业信息 作业属于哪个课程 https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP 作业要求在哪里 https://edu.cnblogs.com/campus/bes ......

二进制位中1个数计算方法

二进制位中\(1\)个数计算方法 按位循环 while (y) { if (y & 1) res++; y >>= 1; } Brian Kernighan 的位计数算法 while (y) { ++res; y = (y & (y - 1)); } y - 1:将 y 减去1。这将导致 y 最右边 ......
二进制 个数 方法

团队作业(四):描述设计

团队分工 ![](https://img2023.cnblogs.com/blog/3307038/202311/3307038-20231111212332799-647275306.png) UML 用例图 类图 活动图 状态图 加解密过程 ![](https://img2023.cnblogs ......
团队

数据库设计心得

在设计一个数据库管理系统,涉及到多个关键表,如用户表、数据库表、日志表、反馈表、索引表和历史查询表. 与其他项目不同的是,我们没设计一个表,就要实现相应的功能,所以表的设计和需求分析联系的更加紧密. 用户表: 用户表是系统的基础,要包含用户的基本信息;使用适当的加密算法来保护用户密码,以增加安全性。 ......
心得 数据库 数据

分布式亿级流量整体架构设计原则

架构目标 高可用性 整体系统可用性最低99.9%,目标99.99%。全年故障时间整个系统不超过500分钟,单个系统故障不超过50分钟。 高可扩展性 系统架构简单清晰,应用系统间耦合低,容易水平扩展,业务功能增改方便快捷。 低成本 增加服务的重用性,提高开发效率,降低人力成本; 最终一致性 服务设计能 ......
分布式 架构 流量 整体 原则

设计模式--Command模式

命令模式(Command Pattern)是一种行为设计模式,它将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 命令模式主要包含以下几个角色: Command(抽象命令类):声明执行操作的接口。 ConcreteCommand(具 ......
模式 设计模式 Command

阿里大佬:DDD中Interface层、Application层的设计规范

文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 实现技术自由,完成职 ......
Application Interface DDD

【Windows】WinForms程序调用WinRT的API清空剪切板

首先这是.NET Framework 4.6项目才用的方法,高版本直接安装Microsoft.Windows.SDK.Contracts包来使用就行了。 此代码实现了手动调用API获取WinRT的剪切板对象,并通过虚函数指针调用ClearHistory方法清空剪切板历史记录(Win+V)。 1 us ......
WinForms Windows 程序 WinRT API

20211316郭佳昊 《信息安全系统设计与实现(上)》 第十周学习总结

一、任务要求 [ 1 ] 知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容 (4分) 我在学****知识点,请你以苏格拉底的方式对我进行提问,一次一个问题 核心是要求GPT:请你以苏格拉底的方式对我进行提问 然后GPT ......
20211316 系统 信息

2023-2024-1 20231406 《计算机基础与程序设计》第七周学习总结

2023-2024-1 20231406 《计算机基础与程序设计》第七周学习总结 作业信息 这个作业属于哪个课程 ([2023-2024-1-计算机基础与程序设计](https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP) 这个作业要求在哪里 (2 ......

Unity 计算圆的切点

/// <summary> /// 计算过圆外一点的切点,在圆上的切点 /// </summary> /// <param name="center"></param> /// <param name="radius"></param> /// <param name="point"></param ......
切点 Unity

首先赋值操作符(=)的优先级小于三元操作符的优先级,所以先计算三元操作符的部分

三元操作,哪个语法是正确的? A var x=y=true?”true”:”false”; B var x=y=true:”true”?”false”; C var x=(y=true):”true”?”false”; D var x=(y=true){“true”:”false”}; 正确答案:A ......
操作符 优先级 部分

计算机内存笔记

本文作为一个笔记,复习一下计算内存相关知识,主要是参考: 合集·CSAPP-深入理解计算机系统 下面说一下储存器部分,当前计算机的储存有这么几种,寄存器是最快的,其次是几级缓存,最后是内存,从硬盘中拿数据是最慢的 先说一下主要的两种内存:SRAM和DRAM 他们的原理分别是: 1、SRAM将每个bi ......
内存 计算机 笔记
共20000篇  :100/667页 首页上一页100下一页尾页