操作系统2:系统调用及用户级线程切换
操作系统接口就是系统调用的函数POISX(Portable Operating System Interface of Unix)定义 fork、open 等系统函数
内核态与用户态CS 的最低两位来表示:0 为内核态,3 为用户态。
执行时检查 CPL(Current Privilege Level)是否小于等于 DPL(Descriptor Privilege Level)
用户程序发起的调用核心代码的唯一方式就是中断指令 int0x80 将 CS 中的 CPL 改为 0,“进入内核”
系统调用的核心:
用户程序中包含一段包含 int0x80 指令的代码
操作系统写中断处理,获取想调程序的编号
操作系统根据编号执行相应代码
多线程切换核心是 Yield() 函数,用户主动实现不同线程栈的切换
1234void Yield() { TCB2.esp = esp; esp = TCB1.esp;} // 执行完后弹栈,由于 esp 已经改为另一个进程的 esp ,弹栈后即可到另一线程的相应位置
123456void ThreadCreate( ...
操作系统1:引导扇区
boot工作:读setup,读system….
x86 PC 开机过程
x86 PC 刚开机时 CPU 处于实模式
开机时,CS=0xFFFF;IP=0x0000
寻址 0xFFFF0(ROM BIOS 映射区)
检查 RAM,键盘,显示器,软硬磁盘
将磁盘 0 磁道 0扇区(引导扇区)读入 0x7c00 处
设置 cs=0x07c0,ip=0x0000
引导扇区代码: bootsect.s rep:重复执行该语句直至寄存器 CX 为 0
movw:将 DS:SI 的数据复制一个字到 ES:DI
jmpi a, b: 间接寻址。CS 设为 b ,IP 设为 a
BOOTSEG = 0x07C0
INITSEG = 0x9000
SETUPSEG = 0x9020
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263.globl begtext ...
微机原理期末复习
题型包括:5 道综合题、6 道简答题
第二章 2 简答题
第五章 1 综合题
第六章 1 综合题 +3 简答题
第七章 2综合题
第八章 1综合题+1简答题
博客加密访问
[toc]
利用 hexo-blog-encrypt 插件对文章进行加密。
安装1npm install hexo-blog-encrypt
简单用法为文章设置密码为 “mima”
12345---title: Hello Worlddate: 2000-01-30 21:18:02password: mima---
自定义设置对文章进行单独设置1234567891011---title: Hello Worldtags: - testdate: 2016-03-30 21:12:21password: mimaabstract: 输入密码查看message: 需要密码wrong_pass_message: 密码错误wrong_hash_message: 文章不能被校验---
全局设置在 _config.yml 中按 Tag 进行加密
123456789# Securityencrypt: abstract: 输入密码查看 message: 需要密码 tags: - {name: tagName, password: 密码A} - { ...
C++ STL
[toc]
头文件123#include <ciostream>#include <string> // string中可以进行+ = += >等运算#include <cctype> // 字符测试,判断字符是否是数字、字母,tolower() 和toupper() 如果参数是大(小)写字符,返回其小(大)写,否则返回该参数
cout 输出控制1234567891011#include <iostream> #include <string>using namespace std;int main() { bool t = true; // bool类型数据输出时要加 boolalpha cout << t << endl; // 1 cout << boolalpha << t << endl; // true return 0;}
C++定义二维数组1vector<vector<int& ...
刷题小结
184d5613b7d1f40c9857b7bf904a8fe3f9bb69a23f51f9800d0f3cd623fbd98d6803ea25a15ee6cfa94062e30cc4c49b383510c640a2ceac879fcad75580eb5582be056be9a9c9f6a279a528b90bb6c4ce1cd86b27cb31a0c988a484978ce3b1a04f5c0596c861f9ad96b6c9c059b885c9462e379f3bd8fc870497cf9f569cd73a5465861a5669c7275d0dc700bfd19febef08e601442bc36912816a5541d71ed006fbb50de71299d68480a8e514953db1859df658fabcd448bc7e8f9530ed154215809a95ee22682d4ae1c9fc74056ef6f084d602ef024c6b7d1d7fd8333ae6e11b9887b830c81d3b74cb264434baf4525c13215887e9ac8 ...
安卓开发初探门径
184d5613b7d1f40c9857b7bf904a8fe3f9bb69a23f51f9800d0f3cd623fbd98d64735a0db35145202774f281ba37647e314faaeeff21704f5da93081c415af224deaa66639f2a817247ab5ff3b450463d1379ad7acf2f0e35d7ea5b6f10c555bc3c2cac343077d0fd609bca735bf7788bb151dc65eb71e4c2ea97ccf6f09e8ca9ef303fb29eca76d15c18c0cd6ba641e138374abc696b3aea03e0caa5389f9ea40bbf994f750395cb1c899e61e6f6eaa531800c6263366d7b988c0e2a25abac9be5314599dc801038ad1f29f3774aa85a305afcafcc5dfa1fb15de2a3d32286e70a2d13c1355eb36ccede71a22bb51cf03f92e48451fec03c ...