培根:读史使人明智 操作系统的简史 (1955-1965) 计算机非常昂贵,上古神机IBM7094 ,造价在250万美元以上 计算机使用原则:只专注于计算 批处理操作系统(Batch system) 典型代表:IBSYS 从IBSYS 到OS/360(1965-1980) 计算机开始进入多个行业:科学计算(IBM 7094) ,银行(IBM 1401) 需要让一台计算机干多种事 多道程序(multiprogramming) 作业之间的 切换和调度 成为核心:因为既有IO 任务,又有计算任务,需要…
操作系统Operating Systems信号量的代码实现Coding Semaphore &死锁处理Deadlock 可以操刀了—从纸上到实际 从Linux 0.11 那里学点东西… 读磁盘块 bread(int dev,int block){ struct buffer_head * bh; ll_rw_block(READ,bh); wait_on_buffer(bh); 启动磁盘读以后睡眠,等待磁盘读完由磁盘中断将其唤醒,也是一种同步 lock_buffer(buffer_head*bh…
操作系统Operating Systems进程同步与信号量Processes Synchronization and Semaphore 进程合作:多进程共同完成一个任务 从纸上到实际:生产者− − 消费者实例 共享数据 #define BUFFER_SIZE 10 typedef struct { . . . } item; item buffer[BUFFER_SIZE]; int in = out = counter = 0; 注意:这些都是用户态程序! 生产者进程 while (true…
开始核心级线程 内核级线程对多核的支持怎么样? 和用户级相比,核心级线程有什么不同? ThreadCreate 是系统调用,内核管理TCB ,内核负责切换线程 如何让切换成型? − − 内核栈,TCB 用户栈是否还要用? 执行的代码仍然在用户态,还要进行函数调用 一个栈到一套栈:两个栈到两套栈 TCB 关联内核栈,那用户栈怎么办? 用户栈和内核栈之间的关联 所有中断( 时钟.外设.INT指令) 都引起上述切换 中断( 硬件) 又一次帮助了操作系统… 仍然是那个A() ,B() ,C() ,D()…
实现一个whoami 系统调用 系统调用的直观实现 问题+直观想法… 用户程序调用whoami, 一个字符串"systemcall "放在操作系统中(系统引导时载入) ,取出来打印,有什么问题? 不能随意的调用数据,不能随意的jmp . 可以看到root 密码,可以修改它… 可以通过显存看到别人word 里的内容… 地址: main() { whoami();} 用户程序 ... whoami() { printf(100, 8); } 内核,都在内存中,这内存不都是我买的吗… 100…
从打开电源开始… 这神秘的黑色背后发生着什么?… 打开电源,计算机执行的第一句指令什么? 计算模型(图灵机) ⇒ 我们要 关注 指针IP 及其 指向的内容 看看x86 PC (1) 刚开机时CPU 处于实模式(和保护模式对应,实模式的寻址CS:IP(CS 左移4 位+IP) ,和保护模式不一样!) (2) 开机时,CS=0xFFFF; IP=0x0000 (3) 寻址0xFFFF0(ROM BIOS 映射区) (4) 检查RAM ,键盘,显示器,软硬磁盘 (5) 将磁盘0 磁道0 扇区读入0x7…
管理CPU ,先要使用CPU… CPU 的工作原理 CPU上电以后发生了什么? 自动的取指 — 执行 CPU 怎么工作? CPU怎么管理? 管理CPU 的最直观方法 设好PC 初值就完事! 看看这样做有没有问题? 提出问题 怎么解决? 现在变成了这个样子 多道程序.交替执行,好东西啊!   单道程序 多道程序 CPU 利用率 40/80=50% 40/45=89% DEV1 利用率 15/80=18.75% 15/45=33% DEV2 利用率 25/80=31.25% 25/45=56% 一个…
多进程是操作系统的基本图像 是否可以资源不动而切换指令序列? 进程 = 资源 + 指令执行序列 线程: 保留了并发的优点,避免了进程切换代价 实质就是映射表不变而PC 指针变 多个执行序列+ 一个地址空间是否实用? 一个网页浏览器 一个线程用来从服务器接收数据 一个线程用来显示文本 一个线程用来处理图片( 如解压缩) 一个线程用来显示图片 这些线程要共享资源吗? 接收数据放在100 处,显示时要读.. 所有的文本.图片都显示在一个屏幕上 开始实现这个浏览器… void WebExplorer()…
左侧部分已是历史的操作系统,右侧的还是活跃的操作系统.安卓系统Android 是Google开发的基于Linux平台的开源手机操作系统.它包括操作系统.用户界面和应用程序-- 移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍.iOSiOS是由苹果公司开发的移动操作系统[1].苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch.iPad以及Apple TV等产品上.iOS与苹果的Mac…
Security--Virtualization--Inter(R) Virtualization Technolog 设置为enable 本机安装的是WIN 7 ,详细版本是:Windows 7 Ultimate, 32-bit 6.1.7601, Service Pack 1 .虚拟机版本:7.1.2 build-301548.在虚拟机上安装RED HAT ENTERPRISE LINUX 6 64版本时,报如下错误: You have configured this virtual mac…