StudyNotes
文章平均质量分 79
MingChaoSun
潜心技术,不离不弃!
展开
-
操作系统概念学习笔记 8 进程
操作系统概念学习笔记 8进程概念进程进程是执行中的程序,这只是非正式的说法。进程不只是程序代码,程序代码称为文本段(代码段),还包括当前活动,通过程序计数器的值和处理器寄存器的内容来表示。此外,进程还包括进程堆栈段(临时数据、函数参数、局部变量、地址)和数据段(包括全全局变量。还可能包括堆(leap),是在进程运行期间动态分配内存。程序是被动实体,如存储在磁盘上包含一系列指令的文件内容(可执行文件)原创 2015-05-06 12:01:46 · 3810 阅读 · 2 评论 -
操作系统概念学习笔记 10 CPU调度
操作系统概念学习笔记 10CPU调度 多道程序操作系统的基础。通过在进程之间切换CPU,操作系统可以提高计算机的吞吐率。对于单处理器系统,每次只允许一个进程运行:任何其他进程必须等待,直到CPU空闲能被调度为止。多道程序的目标是在任何时候都有某些进程在运行,以使CPU的使用率最大化。多道程序的思想较为简单,当一个进程必须等待时,操作系统会从该进程拿走CPU的使用权,而将CPU交给其他进程。CPU-原创 2015-06-12 11:06:28 · 6114 阅读 · 0 评论 -
操作系统概念学习笔记 14 死锁(二)
死锁避免(deadlock-avoidance)在上篇博客中讨论的死锁预防问题中,通过限制资源申请的方法预防死锁。这种限制保证4个必要条件之一不会发生,保证不会发生死锁,然而通过这种方式预防死锁的副作用是低设备使用率和系统吞吐率。避免死锁的另外一种方法是获得以后如何申请资源的附加信息。不同的算法所要求的信息量和信息的类型上有所不同,最为简单和最为常用的模型要求每个原创 2015-07-10 09:52:50 · 3725 阅读 · 0 评论 -
操作系统概念学习笔记 15 内存管理(一)
背景内存是现代计算机运行的中心。内存有很大一组字或字节组成,每个字或字节都有它们自己的地址。CPU根据程序计数器(PC)的值从内存中提取指令,这些指令可能会引起进一步对特定内存地址的读取和写入。一个典型指令执行周期,首先从内存中读取指令。接着该指令被解码,且可能需要从内存中读取操作数。在指令对操作数执行后,其结果可能被存回到内存。内存单元只看到地址流,而并不直原创 2015-07-11 10:18:32 · 7506 阅读 · 0 评论 -
操作系统概念学习笔记 16 内存管理(二) 段页
分页(paging)内存管理方案允许进程的物理地址空间可以使非连续的。分页避免了将不同大小的内存块匹配到交换空间上(前面叙述的内存管理方案都有这个问题,当位于内存中的代码和数据需要换出时,必须现在备份存储上找到空间,这是问题就产生了。备份存储也有前面所述的与内存相关的碎片问题,只不过访问更慢)。传统上,分页支持一直是由硬件来处理的。最近的原创 2015-07-13 10:56:04 · 6886 阅读 · 6 评论 -
一张图说明访问网站的流程
一张图说明访问网站的流程最近看了一些关于Web请求资源方面的知识,自己总结了一个流程图,描述了打开浏览器访问一个网站到网站被渲染出来的流程,希望对大家的学习有所帮助~另外,给大家推荐一款画图很好用的Chrome插件 Gliffy ,我博客里的图大部分都是用它画的,非常的好用,而且是离线的,大家可以试试。因为是流程图的原因,大体的流程是OK的,但是其实里面还有一些细节没有涉及到,还请大神多多补充~网站原创 2015-11-21 11:53:43 · 15448 阅读 · 1 评论 -
C++ 算法大全
第3章 控制语句 /* 1、打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为153 = 13 + 53 + 33。 */ #include void main() { int i, a=0, b=0, c=0; for(i=100;i{ a=i%10; b=i/10%10; c=i/1转载 2014-09-16 00:29:57 · 9638 阅读 · 2 评论 -
C++ 递归位置排列算法及其应用
废话不多说,我们先看一下位置排序的算法:#include using namespace std; int n = 0; int m = 2; int l = 0; int a[100]; void solve(int l);int main(){ cout<<"请输入位数 n "<<endl; cin>>n; solve(l); return 0;}原创 2014-09-19 13:39:58 · 1288 阅读 · 0 评论 -
操作系统概念学习笔记 13 死锁(一)
所有申请的资源都被其他等待进程占有,那么该等待进程有可能在无法改变其状态,这种情况称为死锁(deadlock)。系统模型进程在使用资源之前必须先申请资源,在使用资源之后要释放资源。进程所申请的资源数量不能超过系统所有资源的总量。在正常操作模式下,进程只能按如下顺序使用资源:①申请:如果申请不能立即被允许,那么申请进程必须等待,直到它获得该资源为止。②使用:进程原创 2015-06-19 11:08:57 · 3167 阅读 · 0 评论 -
操作系统概念学习笔记 11 进程同步(一)
进程同步互相协作的进程之间有共享的数据,于是这里就有一个并发情况下,如何确保有序操作这些数据、维护一致性的问题,即进程同步。从底层到高级应用,同步机制依次有临界区、信号量、管程、原子事务。多个进程并发访问和操作同一数据且执行结果与访问发生的特定顺序有关,称之为竞争条件(race condition)。临界区(critical section)每个进程有一个代码段称为临原创 2015-06-16 10:00:14 · 8366 阅读 · 2 评论 -
操作系统概念学习笔记 12 进程同步(二)管程
操作系统概念学习笔记 12=======进程同步(二)管程基本的、高级的同步构造,即管程(monitor)类型。使用:管程类型提供了一组由程序员定义的、在管程内互斥的操作。管程类型的表示包括一组变量的声明(这些变量的值定义了一个类型实例的状态)和对这些变量操作的子程序和函数的实现。管程的类型表示不能直接为各个进程所使用。因此,在管程内定义的子程序只能访问位于管程内那些局部声明的变量和形式参数。类似的原创 2015-06-18 10:33:30 · 3945 阅读 · 0 评论 -
操作系统概念学习笔记 3 存储结构和I/O结构
操作系统概念学习笔记 3存储结构与I/O结构存储结构计算机必须在内存或RAM(随机访问内存random access memory)运行,内存是处理器可以直接访问的唯一大容量存储区域。内存和处理器本身内置寄存器是cpu能直接访问的唯一存储介质。指令load能将内存中的字移到cpu内部的寄存器中。而指令store能将寄存器的内容移动到内存。除了显式使用load和store,cpu可自动从内存中装入指令原创 2015-04-26 14:22:56 · 2720 阅读 · 0 评论 -
操作系统概念学习笔记 6 系统调用
操作系统概念学习笔记 6系统调用系统调用系统调用(system call),通常用c或c++编写,对底层任务(如需直接访问硬件)可能以汇编语言指令的形式提供。一个系统调用的例子: 编写一个从一个文件读取数据并复制到另一个文件的简单程序,则需要以下系统调用序列:获取输入文件名:屏幕输入提示接收输入获取输出文件名:屏幕输入提示接收输入打开输入文件:如果文件不存在,放弃loop:读取输原创 2015-04-29 11:02:38 · 2442 阅读 · 0 评论 -
操作系统概念学习笔记 4 操作系统结构和操作简述
操作系统概念学习笔记 4操作系统结构和操作简述操作系统结构多道程序设计多道程序设计指的是允许多个程序同时进入一个计算机系统的主存储器并启动进行计算的方法。也就是说,计算机内存中可以同时存放多道(两个以上相互独立的)程序,它们都处于开始和结束之间。只要有一个程序或任务可以执行,cpu就不会空闲。 但是不能提供与计算机系统直接交互的能力。分时系统(多任务)分时系统(多任务)是多道程序设计的延伸,在分时系原创 2015-04-28 15:25:40 · 2978 阅读 · 1 评论 -
操作系统概念学习笔记 1 加电引导过程
=======加电-引导程序(bootstrap program)引导程序通常位于ROM或EEPROM中,引导程序必须定位操作系统内核并把它装入内存,接着操作系统开始执行第一个进程如init并等待事件的发生。简单来说即:1,电自检程序、2,自举装入程序、3,引导程序、4,操作系统流程图:linux系统为例:1、加电并且启动BIOS加电:把电源按钮按下去,主板通电后会启动BIOS。2、BIOS到要引导原创 2015-04-26 10:36:02 · 3275 阅读 · 1 评论 -
操作系统概念学习笔记 9 线程
操作系统概念学习笔记 9线程概述单个进程可以包括多个控制线程。线程 ——一种CPU利用的基本单元,它是形成多线程计算机的基础。线程是CPU使用的基本单元,它由线程ID、程序计数器、寄存器集合和栈组成。它与属于统一进程的其他线程共享代码段、数据段和其他操作系统资源。一个传统重量级的进程只有单个控制线程,如果进程有多个控制线程,那么能同时做多个任务。单线程与多线程动机一个应用程序通常是作为一个具有多个控原创 2015-05-12 08:14:14 · 3421 阅读 · 0 评论 -
操作系统概念学习笔记 2 系统中断
操作系统概念学习笔记 2系统中断概述现代操作系统是中断驱动的。如果没有进程可执行,没有I/O设备可服务,没有用户可响应,那么操作系统就会安静的等待事件的发生。事件的发生几乎总是通过中断或者陷阱来表征的。陷阱(trap)或异常(exception)是因错误(如除0、非法访问内存)或者用户程序(执行操作系统服务)的特定请求所引起的软件生成中断。对于中断,硬件可以随时通过系统总线向cpu发出信号,触发中断原创 2015-04-26 13:00:54 · 5512 阅读 · 2 评论 -
操作系统概念学习笔记 5 操作系统管理简述
操作系统概念学习笔记 5操作系统管理简述进程管理处于执行中的程序被称作进程。进程需要一定的资源(包括cpu时间、内存、文件、I/O设备)来完成任务。这些资源可以在进程创建时分配给进程,也可以在执行时分配给进程。除了在创建时得到各种物理和逻辑资源外,进程还可以接受传输过来的各种初始化数据。程序本身并不是进程,程序是被动的实体。而进程是活动的实体。进程是系统工作的单元。单线程进程具有一个程序计数器来明确原创 2015-04-28 20:09:05 · 2126 阅读 · 0 评论 -
操作系统概念学习笔记 7 操作系统结构
操作系统概念学习笔记 7操作系统结构系统设计设计目标系统设计的第一个问题是定义系统的目标与规格。在最高层,系统设计受到硬件选择和系统类型的影响。需求可以分为两个基本类:用户目标和系统目标策略和机制操作系统设计的重要原理是策略(policy)和机制(mechanism)的区别。机制决定如何做,策略决定做什么。策略可能会随着时间或位置而有所改变,每次改变都可能需要底层机制的改变。系统更需要通用机制。这样原创 2015-05-04 17:56:51 · 2794 阅读 · 0 评论 -
经典的7种排序算法 原理C++实现
经典的7种排序算法 原理C++实现排序是编程过程中经常遇到的操作,它在很大程度上影响了程序的执行效率。7种常见的排序算法大致可以分为两类:第一类是低级排序算法,有选择排序、冒泡排序、插入排序;第二类是高级排序算法,有堆排序、排序树、归并排序、快速排序。下面就分别介绍一下这几种排序算法,并会给出c++的实现,实现代码均经过测试。一、低级排序算法1. 选择排序排序过程:给定一个原创 2014-09-19 12:24:12 · 14772 阅读 · 2 评论