自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 链接————csapp

一 基本概念 1.1 链接定义:将各种代码和数据收集并组合成一个单一的文件的过程。这个文件可以被加载到存储器并执行。 链接可以执行在编译时,也可以执行在加载时,也可以是运行时。现代操作系统中,连接是由链接器自动执行的。 1.2链接器意义:分离编译。即不用将一个大型应用程序组织为一个巨大的源文件,而是分割成更小的,易于管理的模块,独立修改编译他们。到那个改变一个模

2017-05-21 18:58:47 493

原创 死锁---操作系统

一、基本概念 不论是在同一个机子,还是在机器之间。不论是硬件资源,还是软件资源,都会发生死锁。资源:需要排他性使用的对象 资源分类:可抢占式资源:抢占不会发生副作用。比如内存。不可抢占式资源 :CD刻录机,一抢占就使CD划坏 一般来说死锁与不可抢占资源有关。可抢占式资源可以通过重新分配资源而解决(比如把内存中的进程换到磁盘上)。资

2017-05-10 17:35:20 320

原创 调度---------操作系统

调度是指在多道程序设计系统中,也就是说有多个进程处于就绪态而(或线程)同时竞争cpu(只有一个)时,必须选择一个进程运行。怎么选择?用调度算法去选。一、基本概念 1.1进程切换的代价: 用户态转到内核态 保存当前进程状态。内存映像保存,运行调度算法选择新进程,将新进程的内存映射重装入MMU,最后新进程开始运行。注意:进程切换使内存高速缓存失效,强迫内存动态装入两次(进入内核一次,离

2017-05-09 22:15:39 495

原创 进程间的通信--------操作系统

一、要解决的问题:如何把信息由一个进程传递给另外一个进程如何处理两个或多个进程在临界区的问题两个进程或多个进程的顺序问题(如何实现同步)二、基本概念:2.1竞争条件: 两个或多个进程读写某些共享数据时,最后的结果取决于进程运程运行的精确时序。(说到底,是访问临界资源时,a进程先访问一半时,a进程被阻塞,b进程去运行,也到了临界资源,把a的之前已经运行了的半个临界资源数据覆盖了,则下一次a在运

2017-05-08 18:38:47 360

原创 static关键字的用法小结

(1)隐藏 这个作用要有多个源文件才能看到: 头文件aa.hvoid fun();源文件aa.c#include<stdio.h>#include"aa.h"//变量未加staticint A = 666;//函数未加staticvoid fun(){ printf("this function is in \"a.h\"\n");}源文件

2017-05-05 17:33:13 533

原创 操作系统--------进程管理(线程)

一、基本概念 1.1为什么需要线程 -同一进程的多个线程共享一个地址空间 -创建销毁比进程快 -多个线程都是cpu密集型,不能获得性能增强,存在大量计算和i/o密集型,会有极高效率 -最关键的一点是:一个进程中存在着多个可以同时执行的小任务(相比于进程而言),这些小任务可以通过线程并行执行 1.2线程模型 -寄存器,程序计数器

2017-05-02 13:30:56 308

转载 fopen 打开方式

文件的打开(fopen函数)fopen函数用来打开一个文件,其调用的一般形式为:文件指针名=fopen(文件名,使用文件方式);其中,    “文件指针名”必须是被说明为FILE 类型的指针变量;    “文件名”是被打开文件的文件名;    “使用文件方式”是指文件的类型和操作要求。    “文件名”是字符串常量或字符串数组。例如:[cpp] view plain copy print

2017-04-17 22:53:22 584

转载 转载-------fwrite和fread函数的用法小结

fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出。[cpp] view plain copy print?#include <stdio.h>  size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);  size_t fwrite(const void *ptr,

2017-04-17 22:50:11 172

转载 操作系统------进程管理(进程)

一、进程的基本概念 1.1伪并行 单个cpu的多道程序设计的并行(多处理器系统是真正的并行) 1.2多道程序设计 真正的cpu在多进程之间来回切换。 1.3进程的特性 结构特性:一个进程一个相应的PCB,程序段+数据段+PCB=进程实体,创建进程就是创建PCB,撤销进程也就是撤销进程的PCB 动态性:进程是程序的一次执行过程,进程是有生命周期的

2017-04-11 20:28:34 500

原创 判断一个数字是不是有符号数字,以及一个类型是不是有符号类型

上课听老师说过这样一道题,感觉比较有趣,就记录下来了。关键思路是一个既有无符号数字,又有有符号数字的表达式中,有符号数字会被转化成无符号数字下面是代码:#include<stdio.h>#define IS_SIGNED_NUMBER(a) (-1-a)<0#define IS_SIGNED_TYPE(type) ((type)0 - 1)<0int main(void){ int a=

2017-04-10 17:18:24 674

原创 进程--------现代操作系统

进程与程序之间的关系:进程是正在执行的程序(或者说程序在运行时才能被称为进程),有自己的内存空间以及自己的虚拟cpu。单个cpu为前提。某一瞬间cpu只能运行一个进程,但在秒级别上(1秒)上看,cpu运行了多个进程, 这种是伪并行。在1秒内,cpu在多个进程(在内存中)之间切换,这种切换地运行进程是多道程序设计。创建进程系统初始化          启动操作系统,创建若干进程。前台的与用户交互

2017-03-27 19:14:38 388

转载 一个字符串的最长回文子串的长度

一般算法 ( 时间复杂度O(N2) )#include<iostream>#include<string>using namespace std;int main(){ string a; cin >> a; int max = 0; int i, j; int c; int size = a.size(); for (i = 0; i<s

2017-03-20 13:03:04 1860

转载 六个通用寄存器的特定用途

%rax(%eax)用于做累加                       %rcx(%ecx)用于计数                       %rdx(%edx)用于保存数据                       %rbx(%ebx)用于做内存查找的基础地址                       %rsi(%esi)用于保存源索引值             

2017-03-14 20:09:07 939

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除