操作系统
wanhf11
无。
展开
-
用户态切换至内核态
1、发生系统调用时 这是处于用户态的进程主动请求切换到内核态的一种方式。用户态的进程通过系统调用申请使用操作系统提供的系统调用服务例程来处理任务。而系统调用的机制,其核心仍是使用了操作系统为用户特别开发的一个中断机制来实现的,即软中断。2、产生异常时 当CPU执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行的进程切换到处理此异常的内核相关的程序中,也就是转到了内核态转载 2016-09-29 17:23:45 · 985 阅读 · 0 评论 -
进程调度和页面置换
进程调度先到先服务最短剩余时间最高响应比优先级轮转法多级反馈队列页面置换最佳置换算法,不可能实现先进先置换LRU(最近最少使用)时钟置换LFU(最少使用)NRU(最近未使用)原创 2016-10-11 09:53:29 · 575 阅读 · 0 评论 -
LRU 与 LFU 算法
LRU和LFU是不同的! LRU是最近最少使用页面置换算法(Least Recently Used),也就是首先淘汰最长时间未被使用的页面! LFU是最近最不常用页面置换算法(Least Frequently Used),也就是淘汰一定时期内被访问次数最少的页! 比如,第二种方法的时期T为10分钟,如果每分钟进行一次调页,主存块为3,若所需页面走向为2 1 2 1 2 3 4 注意,当调页面转载 2016-04-27 19:28:33 · 402 阅读 · 0 评论 -
操作系统调度算法
先来先服务调度算法(FCFS):就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单,公平。其缺点是没有考虑到系统中各种资源的综合使用情况,往往使短作业的用户不满意,因为短作业等待处理的时间可能比实际运行时间长得多。 短作业优先调度算法 (SPF): 就是优先调度并处理短作业,所谓短是指作业的运行时间短。而在作业未投入运行时,并不能知道它实际的运行时间的长短,因此需要用户在提原创 2016-09-02 20:32:01 · 618 阅读 · 0 评论 -
内存屏障
现代 CPU中指令的执行次序不一定按顺序执行,没有相关性的指令可以打乱次序执行,以充分利用 CPU的指令流水线,提高执行速度。同时,编译器也会对指令进行优化,例如,调整指令顺序来利用CPU的指令流水线。这些优化方式,大部分时候都工作良好,但是在一些比较复杂的情况可能会出现错误,例如,执行同步代码时就有可能因为优化导致同步原语之后的指令在同步原语前执行。内存屏障和编译屏障就是用来告诉CPU和编译器停止转载 2016-10-09 21:43:36 · 235 阅读 · 0 评论 -
usb 无法弹出,查看占用
http://blog.sina.com.cn/s/blog_60a760f80101a20x.html原创 2016-06-16 18:44:08 · 1175 阅读 · 0 评论 -
线程、进程和协程
从一定意义上讲,进程就是一个应用程序在处理机上的一次执行过程,它是一个动态的概念,而线程是进程中的一部分,进程包含多个线程在运行。进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大小为 216 ,而 32 位处理机的原创 2016-03-31 17:07:00 · 2307 阅读 · 0 评论 -
共享内存
定义共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是 Unix下的多进程之间的通信方法 ,这种方法通常用于一个程序的多进程间通信,实际转载 2016-06-27 11:23:05 · 358 阅读 · 0 评论 -
两重for循环的效率对比
int a[n][m]for(int i=0;i<n;i++){ for(int j=0;j<m;j++){ // a[i][j] }}for(int j=0;j<m;j++){ for(int i=0;i<n;i++){ // a[i][j] }}以上两个循环的效率谁比较高: 对于现代数组来说,都是行存储优先:a[0][0]原创 2016-06-08 09:18:05 · 3479 阅读 · 0 评论 -
金山游侠修改内存
对于单机游戏来说,所有数据都是在内存和硬盘上的,所以单机游戏实际上是有内存修改器和存档修改器两种。只不过修改的位置不同,技术上来说都是大同小异,就是直接修改游戏数据。制作技术不外乎两种,一种是直接分析游戏主程序对应的反汇编代码,找出关键位置。另一种则比较简单,是通过游戏中数据的变化,来找到对应位置。比如金山游侠中的内存搜索,就是通过搜索内存中某个数值的变化来确定内存地址从而修改数值的(实际上只要把游原创 2016-04-24 09:14:30 · 2998 阅读 · 0 评论 -
操作系统
第一章 操作系统概论操作系统采用的资源管理技术 (1) 复用 操作系统让众多进程共享物理资源,这种共享称为资源复用。通过适当复用可以创建虚拟资源和虚拟机,以解决物力资源数量不足的问题。物力资源的复用共享有两种基本方法:空分复用共享和时分复用共享。 (2) 虚拟 虚拟又称虚拟性,是指操作系统中实现对计算机软硬件资源进行有效管理的技术和手段,能进一步提高操作系统为用户服务的能力和水平。虚拟的本质原创 2016-03-04 21:44:03 · 6151 阅读 · 1 评论 -
信号量与互斥锁
参考1 参考2信号量信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确、合理的使用公共资源。信号量可以分为几类:二进制信号量(binary semaphore):只允许信号量取0或1值,其同时只能被一个线程获取。整型信号量(integer semaphore):信号量取值是整数,它可以被多个线程同时获得,直到信号量的值变为转载 2016-03-16 11:56:48 · 265 阅读 · 0 评论 -
动态编译和静态编译
静态编译与动态编译的区别 动态编译的可执行文件需要附带一个的动态链接库,在执行时,需要调用其对应动态链接库中的命令。所以其优点一方面是缩小了执行文件本身的体积,另一方面是加快了编译速度,节省了系统资源。缺点一是哪怕是很简单的程序,只用到了链接库中的一两条命令,也需要附带一个相对庞大的链接库;二是如果其他计算机上没有安装对应的运行库,则用动态编译的可执行文件就不能运行。 静态编译就是编译器转载 2017-04-11 16:26:02 · 518 阅读 · 0 评论