http://code.google.com/p/writeos/downloads/list
近期目标:
1、熟练掌握Linux下AT&T汇编语言编程;
2、熟练掌握Linux下gcc及as编译汇编的过程及其Makefile编写
3、熟悉X86实模式和保护模式原理及编程;
4、研究透《使用开源软件写操作系统》源码
墨衍会员
·
AI 创作全网分发
墨衍智能分发
本文由作者通过墨衍一键同步至各平台
1分发平台
900+累计阅读
957平均单平台
已同步平台
优快云
微信公众号
微博
知乎
掘金
百家号
博客园
抖音
小红书
你的文章也可以这样分发
墨衍会员 ¥399起/年,写一次发全网
我也要 →
码龄17年
http://code.google.com/p/writeos/downloads/list
近期目标:
1、熟练掌握Linux下AT&T汇编语言编程;
2、熟练掌握Linux下gcc及as编译汇编的过程及其Makefile编写
3、熟悉X86实模式和保护模式原理及编程;
4、研究透《使用开源软件写操作系统》源码
操作系统实现动态分区模拟程序
编写一个动态分区分配算法模拟程序,加深对动态分区存储管理方式及其实现过程的理解。 要求: 空闲分区通过空闲区链进行管理,在内存分配时,优先考虑低地址部分的空闲区。 分别采用首次适应算法、最佳适应算法和最坏适应算法模拟内存空间的动态分配与回收,每次分配和回收后显示出空闲区链的详细情况(说明:在申请不成功时,需要打印当前内存的占用情况信息)。 进程对内存空间的申请和释放可由用户自定义输入。 参考请求序列如下: (1) 初始状态下可用内存空间为640KB; (2) 进程1申请130KB; (3) 进程2申请60KB; (4) 进程3申请100KB; (5) 进程2释放60KB; (6) 进程4申请200KB; (7) 进程3释放100KB; (8) 进程1释放130KB; (9) 进程5申请140KB; (10) 进程6申请60KB; (11) 进程7申请50KB; (12) 进程6释放60KB。 测试用例格式如下: 输入: 动态分区分配算法选择 可用内存空间容量 序号/进程号/申请或释放操作/申请或释放的容量 其中: (1) 动态分区分配算法:1----首次适应,2----最佳适应,3----最坏适应 (2) 申请或释放操作: 1----申请操作,2----释放操作 输出: 序号/内存空间状态1/内存空间状态2...... 内存空间状态表示分为两种情况: (1) 内存空间被占用: 内存空间起始地址-内存空间结束地址.1.占用的进程号 (2) 内存空间空闲 内存空间起始地址-内存空间结束地址.0
计算机操作系统课程设计
课程设计题目 共享资源分配与银行家算法 一、课程设计目的和意义此次课程设计的主要内容是模拟实现资源分配。同时要求编写和调试一个系统动态分配资源的简单模拟程序,观察死锁产生的条件,并使用适当的算法,有效的防止和避免死锁的发生。具体用银行家算法实现资源分配。要求如下:(1) 设计一个3个并发进程共享3类不同资源的系统,进程可动态地申请资源和释放资源,系统按各进程的申请
银行家算法实验报告
银行家算法代码展示
操作系统 进程调度-银行家算法实验报告
实验要求 一、 实验目的 死锁会引起计算机工作僵死,因此操作系统中必须防止。本实验的目的在于让学生独立的使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生,以加深对课堂上所讲授的知识的理解。 二、 实验要求 设计有n个进程共享m个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的分配资源。 系统能显示各个进程申请和释放资源,以及系统动态分配资源的过程,便于用户观察和分析; 三、 数据结构 1. 可利用资源向量Avail
3银行家算法.rar
在c++语言环境下开发的银行家算法完整代码,下载可以直接使用。
操作系统编写教程(完整版)
最新下载地址:http://jinix.sf.net 不需要下载分。上面网站直接下载即可。 断续续瞎搞了一个多月,译完之后又觉得没什么实际内容,都是比较基础的东西,希望对初学者有些用处吧下载文件可以在我博客上得到:http://www.cppblog.com/jinglexy目录:自己动手写内核(序)......................... 3第0 课:环境需求............................. 4第1 课:引导程序............................. 5第2 课:保护模式............................. 8第3 课:辅助函数............................. 17第4 课:中断和异常1.......................... 25第5 课:中断和异常2.......................... 39第6 课:多任务............................... 45第7 课:文件系统............................. 56第8 课:内存管理............................. 70第9 课:系统调用和可执行程序................. 76一份免责声明................................. 81: 有好的os开发项目可以收留我:)
系统资源的观察
free :观察内存使用情况 [root@www ~]# free -m(MB) total used free shared buffers cached Mem: 988 393...
银行家算法模拟c/c++
银行家算法是避免死锁的一种重要方法,本实验要求用高级语言编写和调试一个简单的银行家算法程序。 设计目的 1)了解多道程序系统中,多个进程并发执行的资源分配。 2)掌握死锁的产生的原因、产生死锁的必要条件和处理死锁的基本方法。 3)掌握预防死锁的方法,系统安全状态的基本概念。 4)掌握银行家算法,了解资源在进程并发执行中的资源分配策略。 5)理解死锁避免在当前计算机系统不常使用的原因 要求: 设计一个n 个并发进程共享m 个系统资源的系统。进程可动态申请资源和释放资源,系统按各进程的申请动态的分配资源。要求采用银行家算法实现。 提示: (1) 初始化这组进程的最大资源请求和依次申请的资源序列。把各进程已占用和需求资源情况记录在进程控制块中。假定进程控制块的内容包括:进程名,状态,当前申请量,资源需求总量,已占资源量,能执行完标志。其中,进程的状态有:就绪、等待和完成。当系统不能满足进程的资源请求时,进程处于等待态。资源需求总量表示进程运行过程中对资源的总的需求量。 已占资源量表示进程目前已经得到但还未归还的资源量。因此,进程在以后还需要的剩余资源量等于资源需要总量减去已占资源量。显然每个进程的资源需求总量不应超过系统拥有的资源总量。 (2) 银行家算法分配资源的原则是:当某个进程提出资源请求时,假定先分配资源给它,然后查找各进程的剩余请求,检查系统的剩余资源量是否由于进程的分配而导致系统死锁。若能,则让进程等待,否则,让进程的假分配变为真分配。 a) 查找各进程的剩余请求,检查系统的剩余资源量是否能满足其中一进程。如果能,则转b)。 b) 将资源分配给所选的进程,这样,该进程已获得资源最大请求,最终能运行完成。标记这个进程为终止进程,并将其占有的全部资源归还给系统。 重复第a)步和第b)步,直到所有进程都标记为终止进程,或直到一个死锁发生。若所有进程都标记为终止进程,则系统的初始状态是安全的,否则为不安全的。若安全,则正式将资源分配给它,否则,假定的分配作废,让其等待。
关于操作系统编写的相关资源(转)
http://code.google.com/p/writeos/downloads/list 近期目标: 1、熟练掌握Linux下AT&T汇编语言编程; 2、熟练掌握Linux下gcc及as编译汇编的过程及其Makefile编写 3、熟悉X86实模式和保护模式原理及编程; 4、研究透《使用开源软件写操作系统》源码
ERA5数据批量下载
ERA5再分析数据的IDM接管下载
AI Agent在营销领域的实战策略
本文从第一性原理出发,系统性拆解AI Agent在营销领域的落地逻辑、技术架构、实现方案与实战策略。全文覆盖从基础概念到高级优化的全层级知识:底层理论层面推导营销Agent的效用函数与决策框架;技术架构层面提出"感知-记忆-规划-行动-反思"五组件可落地架构;实践层面提供生产级代码实现、多行业案例与ROI提升方法论;前沿层面探讨多Agent协同、世界模型仿真等下一代技术方向。
自制操作系统、操作系统的设计与实现 书籍
自制操作系统、操作系统的设计与实现 书籍
Field-Oriented Control (FOC) 矢量控制 磁场定向控制
Field-Oriented Control (FOC) 磁场定向控制(FOC),也称为矢量控制,是一种用于控制永磁同步电动机(PMSM)和交流感应电动机(ACIM)的技术。 FOC在整个扭矩和速度范围内都具有良好的控制能力。 FOC的实现需要将定子电流从固定参考系转换为转子磁通参考系(也称为d-q参考系)。 速度控制和转矩控制是FOC最常用的控制模式。位置控制模式不太常见。大多数牵引应用使用转矩控制模式,在该模式下,电动机控制系统遵循参考转矩值。在速度控制模式下,电机控制器遵循参考速度值,并生成用于形成内
【免费下载】 操作系统精髓与设计原理第九版资源下载
操作系统精髓与设计原理第九版资源下载 【下载地址】操作系统精髓与设计原理第九版资源下载 操作系统精髓与设计原理第九版资源下载 项目地址: https://gitcode.com/Open-source-documentation-...
Hermes V0.10.0:官方UI几乎无Bug版
如果你还在观望Hermes,现在可能是最好的入局时机。 因为网页端来了,门槛降到了最低。 如果你已经是Hermes用户,升级就对了。 因为0.9.0的更新,值得一试。
STM32异常与中断过程详解
1. 异常与中断概念引入 异常主要是指来自CPU内部的意外事件,比如执行了未定义指令、算术溢出、除零运算等发生在CPU内部的意外事件,这些异常的发生,会引起CPU运行相应的异常处理程序;中断一般来自硬件(如片上外设、外部I/O输入等)发生的事件,当这些硬件产生中断信号时,CPU会暂停当前运行的程序,转而去处理相关硬件的中断服务程序。但无论是异常还是中断,都会引起程序执行偏离正常的流程,转而去执行异常/中断的处理函数。 下面对异常和中断的介绍,如果中断信号的产生原因来自CPU内部,则称之为异常;如果中断信号来
一些操作系统的链接
http://www.osdev.org http://asmcos.51.net 中国操作系统 http://www.minicore.net 中国基础软件论坛 http://www.mega-tokyo.com/os/os-faq.html 操作系统问答 http://gro.clinux.org GRO http://newdos.yginfo.net/doswaref.htm 新DOS时代
Lattice CrosslinkNx LIFCL-40实战解析:MIPI D-PHY硬核IP配置与CSI-2数据解析全流程
本文详细解析了Lattice CrosslinkNx LIFCL-40 FPGA中MIPI D-PHY硬核IP的配置与CSI-2数据解析全流程。通过实战案例,介绍了硬件环境搭建、寄存器配置、数据包结构解析及视频流重构技巧,帮助开发者快速掌握高速图像采集系统的设计与优化方法。
开源的ARINC653分区操作系统
开源的ARINC653分区操作系统
高分三号SAR影像超精细条带数据预处理实战:从原始数据到地理编码的完整操作指南
本文提供了高分三号SAR影像超精细条带数据预处理的完整实战指南。详细介绍了从原始数据导入、多视处理、滤波去噪、DEM准备到地理编码与辐射定标的完整流程,帮助用户利用SARscape软件将原始SAR数据转化为可用于分析的地理编码产品。
Windows部署小龙虾 OpenClaw 报错不断?参考这篇文章,轻松配置 OpenClaw 所需环境
想在Windows上部署OpenClaw却频频报错?🔧 本文详细梳理了OpenClaw部署必需环境的安装步骤和官方下载地址 📦,提供完整的验证清单和常见问题排查方法,帮你一次性搞定所有环境配置,顺利部署OpenClaw ✅
重庆大学操作系统第二次实验资源下载
重庆大学操作系统第二次实验资源下载 去发现同类优质开源项目:https://gitcode.com/ 实验简介 本资源包含重庆大学操作系统第二次实验的相关内容,主要涉及线程和进程的调用。通过本次实验,学生可以更深入地理解操作系统中线程和进程的概念及其在实际应用中的调用方式。 文件内容 实验报告文档 相关代码文件 实验所需数据文件 使用说明 下载并解压资源文件。 根据实验要求,阅读实验报告文档...
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
《嵌入式实时操作系统uCOS-II原理及应用》图书资源
《嵌入式实时操作系统uCOS-II原理及应用》图书资源 【下载地址】嵌入式实时操作系统uCOS-II原理及应用图书资源 这是一本专注于嵌入式实时操作系统uCOS-II的权威书籍——《嵌入式实时操作系统uCOS-II原理及应用》,由任哲编写,内容深入浅出,适合初学者和开发者。书中详细解析了uCOS-II的内核结构、任务管理...
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
操作系统实验二-银行家算法(以随机数作为输入)
广州大学学生实验报告 开课学院:计算机科学与网络工程学院 实验室:计算机软件实验室 计科183 实验二 银行家算法 一、实验目的 1、了解什么是操作系统安全状态和不安全状态; 2、了解如何避免系统死锁; 3、理解银行家算法是一种最有代表性的避免死锁的算法,掌握其实现原理及实现过程。 二、实验内容 根据银行家算法的基本思想,编写和调试一个实现动态资源分配的模拟程序,并能够有效避免死锁的发生。 一、实验原理 进程申请资源时,系统通过一定的算法判断本次申请是否不可能产生死锁(处于安全状态)。若可能产生死锁(
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
嵌入式实时操作系统uCOS-II原理及应用图书资源
嵌入式实时操作系统uCOS-II原理及应用图书资源 【下载地址】嵌入式实时操作系统uCOS-II原理及应用图书资源 这是一本专注于嵌入式实时操作系统uCOS-II的权威书籍——《嵌入式实时操作系统uCOS-II原理及应用》,由任哲编写,内容深入浅出,适合初学者和开发者。书中详细解析了uCOS-II的内核结构、任务管理、时...
理解操作系统中的信号机制
本文基于B站王道计算机课程,系统讲解了操作系统中的信号机制与线程知识。信号作为进程间通信(IPC)的重要机制,用于通知进程事件发生,其发送、保存和处理方式均有详细说明。在引入线程后,系统并发性显著提升:线程成为CPU调度单位,同一进程内的线程可共享资源,切换开销更小。文章还对比了线程与传统进程的区别,介绍了线程的实现方式和多线程模型。这些核心概念对理解操作系统运行原理和开发高效程序具有重要价值。
3034
1577
1万+
1103
2827

被折叠的 条评论
为什么被折叠?



