操作系统
文章平均质量分 53
兔头哥哥
正在积极治疗秃顶
展开
-
操作系统:22、进程同步之Unix域套接字
操作系统:22、进程同步之Unix域套接字Unix域套接字域套接字例子Unix域套接字套接字(socket)原是网络通信中使用的属于Unix系统提供的域套接字提供了网络套接字类似的功能提供了单机简单可靠的进程通信同步服务只能在单机使用,不能跨机器使用具体使用流程如下域套接字例子下方例子因为没有c语言基础,所以为校验过server.cpp#include <stdio.h>#include <sys/types.h>#include <sys/soc原创 2021-06-19 23:13:45 · 124 阅读 · 0 评论 -
操作系统:21、进程同步之共享内存
操作系统:21、进程同步之共享内存进程同步共享内存的例子(c语言)进程同步在某种程度上,多进程是共同使用功能物理内存的由于操作系统的共享内存的例子(c语言)原创 2021-06-19 22:44:48 · 618 阅读 · 0 评论 -
操作系统:20、fork系统调用创建进程
操作系统:20、fork系统调用创建进程fork系统调用fork系统调用fork系统调用是用于创建进程的;fork创建的进程初始化状态与父进程一样系统会为fork的进程分配新的资源fork系统调用无参数fork会返回两次,分别返回子进程id和0返回子进程id的是父进程,返回0的是子进程c语言fork进程的例子#include <iostream>#include <cstring>#include <stdio.h>#include <u原创 2021-06-19 20:14:37 · 629 阅读 · 0 评论 -
操作系统:19、线程同步方法总结
操作系统:19、线程同步方法总结线程同步方法汇总互斥量、自旋锁、读写锁条件变量线程同步方法对比线程同步方法汇总互斥量:https://blog.csdn.net/weixin_36020178/article/details/118035221自旋锁:https://blog.csdn.net/weixin_36020178/article/details/118035720条件变量:https://blog.csdn.net/weixin_36020178/article/details/1180原创 2021-06-19 19:33:50 · 88 阅读 · 0 评论 -
操作系统:18、线程同步之条件变量
操作系统:18、线程同步之条件变量条件变量条件变量条件变量是一种相对复杂的线程同步方法允许线程睡眠,直到满足某种条件当条件满足时,可以向该线程信号,通知唤醒生产者消费者代码实例:#include <stdlib.h>#include <stdio.h>#include <vector>#include <queue>#include <unistd.h>#include <pthread.h>int MAX原创 2021-06-19 19:13:55 · 143 阅读 · 0 评论 -
操作系统:17、线程同步之自旋锁
操作系统:17、线程同步之自旋锁自旋锁自旋锁自旋锁是一种多线程同步的变量;使用自旋锁的线程会反复检查锁变量是否可用,如果不可用会一直循环反复检查;自旋锁不会让出CPU,是一种忙等待状态;自旋锁是一种死循环等待锁被释放;自旋锁的优势自旋锁避免了进程或线程上下文切换的开销;操作系统内部很多地方使用的是自旋锁;自旋锁不适合在单核CPU使用;(因为自旋锁在等待时不会释放CPU,而是死循环去等待,若在单核cpu使用会占满cpu,引起其他进程或线程没有办法执行)c提供的自旋锁api是pthr原创 2021-06-19 00:09:27 · 575 阅读 · 1 评论 -
操作系统:16、线程同步之互斥量
操作系统:16、线程同步之互斥量互斥锁互斥锁原子性:一系列操作不可被中断的特性;这一系列操作要么全部执行完成,要么全部没有执行;不存在部分执行部分未执行的情况;互斥量互斥量是最简单的线程同步的方法;互斥量(互斥锁)处于两种状态之一:解锁和加锁;两个状态可以保证资源访问的串行;操作系统直接提供了互斥量的API,开发者可以直接使用API完成资源的加锁、解锁操作;比如c的api:pthread_mutex_t。互斥锁的例子#include <stdio.h>#incl原创 2021-06-18 23:16:50 · 245 阅读 · 0 评论 -
操作系统:15、操作系统的设备管理
操作系统:15、操作系统的设备管理1、广义的IO设备2、IO设备的缓冲区3、SPOOLing技术1、广义的IO设备对cpu而言,凡是对cpu进行数据输入的都是输入设备;对cpu而言,凡是对cpu进行数据输出的都是输出设备;按使用特性分类广义IO设备按信息交换的单位分类:按设备的共享属性分类按传输速率分类2、IO设备的缓冲区缓冲区的作用:减少cpu处理io请求的频率提高cpu与io设备之间的并行性解决cpu与io设备的速率不匹配缓冲池专用缓冲区只适用于特定的IO进程,当原创 2021-06-18 22:45:28 · 450 阅读 · 0 评论 -
操作系统:14、linux的文件系统
操作系统:14、linux的文件系统1、文件系统概览2、EXT文件系统1、文件系统概览FAT(File Allocation Table)早期windows使用的文件系统,使用一张表保存盘块信息NTFS(New Technology File System)windowsNt环境的文件系统,NTFS对FAT进行了改进,取代了旧的文件系统EXT2/3/4EXT(Extended file system):扩展文件系统,是linux的文件系统,ubuntu、centos都是使用EXT文件系统。l原创 2021-06-18 21:19:32 · 112 阅读 · 0 评论 -
操作系统:13、linux文件基本操作
操作系统:13、linux文件基本操作1、linux目录2、linux文件常用操作3、linux文件类型1、linux目录linux中一切皆文件,包括进程、设备等等结对路径:从根目录开始的唯一路径;相对路径:相对于当前的操作目录的文件位于哪一个目录;2、linux文件常用操作touch 文件名:创建文件vim 文件名:编辑文件cat 文件名:查看文件rm 文件名:删除文件mkdir 文件夹名:创建文件夹rm -r 文件夹名:递归删除文件夹3、linux文件类型...原创 2021-06-18 00:14:32 · 87 阅读 · 1 评论 -
操作系统:12、操作系统的文件管理
操作系统:12、操作系统的文件管理文件的逻辑结构文件的逻辑结构逻辑结构的文件类型:逻辑结构的文件主要分为有结构文件和无结构文件。有结构文件:文件内容由定长记录和可变长记录组成;定长记录存储文件格式、文件描述等结构化数据项;可边长记录存储文件具体内容; 具体有结构文件例子,如下图的png图片:无结构文件:无结构文件也称为流式文件;文件内容长度以字节为单位;比如常见的exe文件、dll文件、so文件...原创 2021-06-17 23:50:59 · 144 阅读 · 1 评论 -
操作系统:11、linux存储管理
操作系统:11、linux存储管理Buddy内存管理算法linux交换空间Buddy内存管理算法Buddy内存管理算法是经典的内存管理算法,也是运行在linux中的算法。算法基于计算机处理二进制的优势具有极高的效率。主要是为了解决内存外碎片的问题。页内碎片:已经被分配出去(能明确指出属于哪个进程)的内存空间大于请求所需的内存空间,不能被利用的内存空间就是内部碎片(页内碎片)。页外碎片:还没分配出去(不属于任何进程),但是由于大小而无法分配给申请内存空间的新进程的内存空闲块。Buddy内存原创 2021-06-17 22:24:15 · 223 阅读 · 1 评论 -
操作系统:10、存储管理之虚拟内存
操作系统:10、存储管理之虚拟内存1、虚拟内存概述2、程序局部性原理3、虚拟内存置换算法数据替换1、虚拟内存概述为什么要使用虚拟内存?有些进程实际需要内存很大,远超物理内存容量由于操作系统的多道程序设计,使得每个进程可用物理内存更加稀缺不可能无限增加物理内存,物理内存总有不够的时候虚拟内存是操作系统内存管理的关键技术,使得多道程序运行和大程序运行成为现实,把程序使用内存划分,将部分暂时不使用的内存放置在辅存。2、程序局部性原理CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储原创 2021-06-17 21:31:52 · 179 阅读 · 1 评论 -
操作系统:9、存储管理之页式存储管理
操作系统:9、存储管理之页式存储管理页式存储管理段式存储管理段页式存储管理页式存储管理字块是相对物理设备的定义页面则是相对逻辑空间的定义页式存储管理:将进程逻辑空间等分成若干大小的页面相应的把物理内存空间分成与页面大小的物理块以页面为单位把进程空间装进物理内存中分散的物理块内存碎片:页表:段式存储管理段页式存储管理...原创 2021-06-17 20:05:30 · 9364 阅读 · 1 评论 -
操作系统:8、存储管理之内存分配与回收
操作系统:8、存储管理之内存分配与回收1、内存分配过程2、内存回收过程早期计算机编程并不需要过多的存储管理,但是随着计算机和程序越来越复杂,存储管理就称为了必要。存储管理主要是为了确保下面的三个问题:确保计算机有足够内存处理数据;确保程序可以从可用内存中获取一部分内存使用;确保程序可以归还使用后的内存以供其他程序使用;1、内存分配过程单一连续分配: 单一连续分配是最简单的内存分配方式; 只能在单用户、单进程的操作系统中使用; 单一连续分配将内存分为系统区、用户区,系统区的所有内存都给原创 2021-06-17 00:10:49 · 2146 阅读 · 0 评论 -
操作系统:7、作业管理之死锁
操作系统:7、作业管理之死锁死锁死锁什么是死锁:两个或者两个以上进程在执行过程中,由于竞争资源或者由于彼此通信从而造成的一种阻塞现象。若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。假设上图中的4个箭头是四辆汽车,若没有哪一辆汽车后退,那么他们都将无法前进;就类似哲学家问题中所有哲学家同时拿起右手边的筷子一样。死锁的产生:死锁产生主要有两种情况:相互竞争资源、进程调度顺序不当。相互竞争资源的原因:共享资源数量不满足各原创 2021-06-16 20:11:08 · 245 阅读 · 0 评论 -
操作系统:6、作业管理之进程调度
操作系统:6、作业管理之进程调度1、什么是进程调度1.1、抢占式调度和非抢占式调度2、进程调度算法1、什么是进程调度进程调度是指计算机通过决策决定哪个就绪进程可以获得CPU使用权;进程调度的步骤: 1、保留旧进程的运行信息,请出旧进程 2、选择新进程,准备运行环境并分配CPU进程调度机制:就绪队列排队机制(将就绪进程按照一定的方式排成队列,以便调度程序可以最快找到就绪进程)选择运行进程的委派机制(调度程序以一定的策略选择就绪进程,将cpu资源分配给它)新老进程的上下文切换机制(保存当前进原创 2021-06-16 19:06:42 · 265 阅读 · 0 评论 -
操作系统:5、进程管理之Linux进程管理
操作系统:5、进程管理之Linux进程管理1、linux进程的相关概念1.1、进程的类型1.2、进程的标记操作linux进程的相关命令1、linux进程的相关概念1.1、进程的类型linux进程分为3种:1、前台进程2、后台进程3、守护进程前台进程:具有终端,可以和用户进行交互的进程(比如用php写一个死循环,用命令行执行,那么就会一直卡住终端)后台进程:没有占用终端的就是后台进程;后台进程基本不和用户交互,优先级比前台进程低;linux中将需要执行的命令以&符号结束,就可以原创 2021-06-16 00:09:55 · 224 阅读 · 0 评论 -
操作系统:4、进程管理之进程同步
操作系统:4、进程管理之进程同步1、为什么需要进程间同步生产者消费者问题哲学家进餐问题进程间同步解决生产者消费者、哲学家进餐问题2、进程间同步的原则3、线程同步1、为什么需要进程间同步生产者消费者问题上述过程,若并发执行就会出现缓冲区数据出错哲学家进餐问题“哲学家进餐问题中会发生极端情况,所有哲学家都饿死,也就是所有进程都陷入等待状态”进程间同步解决生产者消费者、哲学家进餐问题“生产者消费者问题”以及“哲学家进程问题”的根源问题是:彼此相互之间没有通信。若生产者通知消费者我已经完成一原创 2021-06-15 21:49:49 · 1597 阅读 · 5 评论 -
操作系统:3、进程管理之五状态模型
操作系统:3、进程管理之五状态模型进程的五状态模型就绪状态执行状态阻塞状态进程就绪、执行、阻塞状态的切换创建状态终止状态进程的五状态模型进程主要有以下五种状态: 就绪 阻塞 执行 创建 终止就绪状态当进程分配到了除CPU以外所有必要的资源后,就是就绪状态;其他资源都准备好了,只差CPU资源的状态为就绪状态就绪状态下只要再获得CPU的使用权,就可以立即运行;就绪队列:在一个系统中多个处于就绪状态的进程通常排成一个队列,这个队列就称为就绪队列。这个队列中有多个处于就绪状态的进程。执原创 2021-06-15 21:10:27 · 2282 阅读 · 2 评论 -
操作系统:2、进程管理之进程实体
操作系统:2、进程管理之进程实体1、为什么需要进程2、进程的实体2.1、主存中的进程形态2.2、进程与线程1、为什么需要进程1.进程是系统进行资源分配以及调度的基本单位;2.进程作为程序独立运行的载体,保障程序的正常运行;因为有多道程序设计的概念,所以在计算机里面就可能会有多个进程共同使用某一个物理设备,比如说存储器可能是多个进程共同使用的、CPU也可能是多个进程共同使用的。进程在这里就发挥着运行资源的隔离作用。3.进程的存在使得操作系统资源的利用率大幅提升(依赖于多道程序设计概念)2、进原创 2021-06-15 20:32:04 · 864 阅读 · 0 评论 -
操作系统:1、操作系统概览
计算机基础:22、计算机基础实践-双向链表实现FIFO缓存置换算法FIFO(先进先出算法)二级目录三级目录FIFO(先进先出算法)FIFO缓存置换算法,当需要淘汰缓存的时候,把最先进入链表的节点淘汰二级目录三级目录...原创 2021-06-15 19:37:48 · 546 阅读 · 9 评论