
操作系统
Free Jim
这个作者很懒,什么都没留下…
展开
-
单道批处理 多道批处理
手工操作:用户往计算机中插入穿孔的纸带,然后取走记录结果的纸带;电子管,这时计算速度不快单道批处理(监督程序):简单说就是单任务处理,一个任务处理完再处理下一个;晶体管,可以处理一个或多个用户的很多作业多道批处理:多进程处理,有调度算法支持;进程A到系统IO时切换CPU给进程B分时系统:分时间片多用户使用终端实时系统:请求求立马得到处理...原创 2020-06-18 19:35:18 · 3213 阅读 · 0 评论 -
高速缓存Cache的映射方式
一:直接映射简单来说,就是整个Cache,映射到主存中,是一个主存块组(n个连续主存块为一组)地址划分:主存组号,Cache行数,块内地址(按顺序排列的)主存组号:主存块号从0开始,顺序,每n块为一组,从第0组开始Cache行数:表示在Cache块的第几行数据,也表示在主存块组中的第几块块内地址:CPU一次取一字(若干字节,不同计算机可能会不同)的数据而一个主存块可能包含多个字,块内地址则表示要取块内的第几字来一个例子帮助理解:(1)主存地址空间:1GB=2^20B则主存地址为20位,原创 2020-06-07 10:11:29 · 2712 阅读 · 0 评论 -
程序时间局部性和空间局部性
时间局部性:当前访问的数据,在最近的将来可能还会访问空间局部性:当前访问数据,在最近的将来可能海湖访问其附近的数据因为现在计算机的Cache机制所以写程序时要注意提高程序时间局部性和空间局部性写得好的话,代码的运行效率会有几倍的差别...原创 2020-06-07 09:34:48 · 2899 阅读 · 0 评论 -
CPU访问地址的过程
一:判断高速缓存Cache的TLB中是否有页表项对应若有,就已经可以得到物理地址了若无二:判断主存的各页框中是否有对应的页表若有,则更新TLB并且转换得物理地址(注意:转换是由MMU完成的)若无三:产生缺页中断,当前进程会暂时挂起,等待主存更新对应的页表首先查看主存中是否存在空闲页框若有,则直接从磁盘中读入对应的页表若无四:运行替换算法此时,已有对应页表,则更新TLB并得到物理地址五:判断物理地址是否在Cache中若有,则访问之若无六:产生Cache缺失中断,进程挂起,再判断原创 2020-06-07 09:29:21 · 1496 阅读 · 1 评论 -
虚拟地址和物理地址
简单地说,物理地址对应实际内存而虚拟地址对应的是由MMU创造出来的虚拟空间一般来说,我们程序中临时生成的地址都是逻辑地址只有在Intel实模式下,逻辑地址才会等于物理地址因为操作系统默认会运行分页机制,采用虚拟内存而有一些记录在手册上的地址,那些是物理地址例如:IO系统的手册...原创 2020-06-07 09:09:52 · 484 阅读 · 0 评论 -
CPU利用率
CPU在计算机开启后就一直运行,而所谓的利用率低,并不代表CPU空闲,停止了运行没有分配任务的那部分CPU则是运行着idle进程所谓的利用率,也就是看idle进程在全部进程中的占比原创 2020-05-17 18:07:48 · 492 阅读 · 2 评论 -
分时操作系统和实时操作系统
分时操作系统:强调时间片的概念,一台计算机会按时间片给众多用户分配资源使用实时操作系统:强调优先级概念,根据优先级来分配CPU原创 2020-05-17 18:02:47 · 642 阅读 · 0 评论 -
汇编语言 中括号
表示内存例:ebp 表示取寄存器的值[ebp]表示以ebp的值为地址在内存中取值原创 2020-05-01 18:58:20 · 4733 阅读 · 1 评论 -
信号量 同步 死锁
#include "wrapper.h" /*多线程输出10行ABC*/sem_t go,a,b,c; /*a,b,c是用于同步的信号量*/void* A(){ sem_wait(&go); sem_wait(&c); printf("A"); sem_post(&go); sem_post(&a); return NULL;}void* B...原创 2020-04-25 09:50:26 · 583 阅读 · 0 评论 -
pthread_create pthread_join 传参
一:pthread_create 进程创建void*t1(void* v){}int n=1;pthread_t tid1;int* niters=&n;pthread_create(&tid1, NULL, t1, (void*) niters); &tid1----进程号地址t1–线程所指函数名,注意 t1 的返回值由 pthread_create ...原创 2020-04-25 09:38:57 · 499 阅读 · 0 评论 -
信号量的使用
sem_init(&mutex,0,1);1 仅表示初值为1,可用sem_post使其大于1sem_wait(&mutex); 单纯地把信号量减一其他线程没有资源数分配的就被阻塞仅此而已sem_post(&mutex); 使信号量加一...原创 2020-04-25 09:22:47 · 579 阅读 · 0 评论 -
多线程 可能输出
int main() { if (fork() == 0) { printf ("A"); printf ("B"); exit(0); }else {if (fork()==0) { printf("C") ; printf("D") ; exit(0); }else {printf("E") ; printf("F") ; exit(0); } } } ...原创 2020-04-20 14:36:34 · 154 阅读 · 0 评论 -
多线程 同步 互斥 信号量
同步:语句执行顺序有要求例:两个线程,一个负责炒菜,一个负责上菜菜没炒好,是上不了菜的,上菜进程需要被阻塞,等到菜炒好了再上菜互斥:对共享变量进行操作时有要求例:多个窗口售票,同一时刻只允许一个窗口从票池取票然后售出-----防止出现 “卖出同一张票” 的情况(这个例子的前提是各窗口都在同一个票池中取票,有窗口在取票时其他窗口进入阻塞状态等待)信号量:应用于同步,互斥大于0时不阻...原创 2020-04-19 21:43:12 · 164 阅读 · 0 评论 -
文件系统 连续 链接 单级索引
连续方式:数据保存在连续的数据块中,尽管如此,但还是有FAT表(File Allocation Table) 哦~这个FAT表中有记录文件的文件名,开始位置和文件大小链接方式:显式----以各个磁盘块为节点,组成一个链表,也有FAT表------记录开始节点和结束节点隐式----有一个FAT表,以磁盘块号为节点,组成一个链表索引方式:直接地址,一级间接地址,二级间接地址,三级间接地址...原创 2020-04-11 09:27:42 · 648 阅读 · 0 评论 -
文件系统 索引
若盘块大小为 4KB,块地址用 4 字节表示直接地址:0~9保存的是一个指针,每个指针指向一个装有数据的磁盘块10*4KB=40KB一级间接地址:指针,指向一个磁盘块,一个都是地址的磁盘块,每个地址又各自指向一个有数据的磁盘块41024/44KB=4096KB=4MB有关B MB 可以参考这篇文章:B KB MB G二级间接地址:指针,指向一个磁盘块,一个都是一级间接地址的磁盘块。。。...原创 2020-04-11 09:16:38 · 1433 阅读 · 0 评论 -
Linux 信号阻塞
为什么子进程没有执行想要的代码呢?------没有在子进程阻塞相关的信号而导致子进程提前结束#include "wrapper.h"int pid1,pid2;void child1(int sig){ /*子进程信号处理函数*/int pid=getpid();printf("%d kill by %d\n",pid,sig);exit(0);return ;}void ch...原创 2020-04-11 09:03:09 · 253 阅读 · 0 评论 -
Linux C语言 shell
#include "wrapper.h"#include <time.h>int MAXARGS=10;int parseline(char *buf, char **argv) { char *delim; /* 指向第1个分隔符 */ int argc; /* 字符串数组args中命令行参数个数 */ int bg; /* 后台作业 */ buf[strlen(b...原创 2020-04-11 08:56:36 · 893 阅读 · 0 评论 -
子进程
fork()创建子进程后子进程拥有和父进程一样的程序代码和数据进程之间是独立的-------变量并不共享,包括全局变量!多线程则是可以共享全局变量~原创 2020-04-10 18:19:47 · 117 阅读 · 0 评论 -
线程
线程是进程中再细化的一个CPU运行单元大概可以这样理解原创 2020-04-10 18:18:16 · 98 阅读 · 0 评论 -
B KB MB G
以上单位之间的转化都不是1000的整数关系—而是近似1000的1024—(2的10次方)1024B=1KB1024KB=1MB1024MB=1G像100兆则是整数关系100MB=1001MB=1001024KB=102400KB原创 2020-04-04 21:48:58 · 356 阅读 · 0 评论 -
什么是进程
进程在计算机中其实就是一个结构体结构体中包含的信息主要有:程序代码数据集进程控制块(PCB–Process Control Block)—其中包含了进程的状态信息(像:就绪态,运行态,阻塞态等)CPU给每个进程分配一定的时间,让他们进入运行态进行处理如果给定时间内没有处理完,进程会进入阻塞态,然后是就绪态–等待下一次的运行态...原创 2020-03-30 20:48:12 · 342 阅读 · 0 评论 -
FAT文件系统
全称:File Allocation Table简单的说就是有一张资源表,记录着文件按顺序(显式链接)分布在哪些磁盘块FAT16和FAT32其中 16 和 32 表示每个表项的位数–用16位 32位大小的空间表示盘块信息显然,FAT32表能指向更多的盘块,支持更大的文件FAT16–2048MB–2G(能支持的最大单个文件大小)FAT32–4096MB–4G...原创 2020-03-30 20:39:03 · 739 阅读 · 0 评论 -
显式链接和隐式链接
显式链接:一个磁盘块内记录很多指针,指向文件数据块隐式链接:磁盘块储存文件数据和指针,直接通过链表串起来原创 2020-03-30 20:28:46 · 7256 阅读 · 0 评论 -
顺序访问和随机访问
顺序访问:访问一段连续的磁盘块随机访问:访问不连续的磁盘块(像索引—根据给出的索引去访问指定磁盘块)原创 2020-03-30 20:22:17 · 1378 阅读 · 0 评论