![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
dawuga
这个作者很懒,什么都没留下…
展开
-
操作系统-连续分配管理方式
连续分配方式是指为一个用户程序分配一个连续的内存空间。1、单一连续分配内存在此方式下分为系统区和用户区,系统区仅在操作系统使用,通常在低地址部分;用户区是为用户提供的、出系统区之外的内存空间。这种方式无需进行内存保护。因为内存中永远只有一道程序,因此肯定不会越界和干酪其他程序。优点:简单、无外部碎片,可以采用覆盖技术,不需要额外的技术支持。缺点:只能用于单用户、单任务的操作系统中,有内部...原创 2020-02-20 00:28:19 · 1000 阅读 · 0 评论 -
操作系统-覆盖与交换
覆盖与交换技术是在多道程序环境下用来扩充内存的两种方法。1、覆盖覆盖的基本思想:由于程序运行时并非任何时候都要访问程序及数据的各个部分(尤其是大程序),因此可把用户空间分成固定区和若干覆盖区。将经常活跃的部分放在固定区,其余部分按照调用关系分段。首先将这些即将访问的段放入覆盖区,其他段放在外存中,在需要调用前,系统再将其调入覆盖区,替换覆盖区中的原有的段。覆盖技术的特点:打破了必须将一个进程...原创 2020-02-19 22:08:12 · 684 阅读 · 0 评论 -
操作系统-程序的装入和链接
创建进程首先要将程序和数据装入内存。将用户源程序变为可在内存中执行的程序,通常需要以下几个步骤:1、编译由编译程序将用户源代码编译成若干目标模块。2、链接由链接程序将编译后形成的一组目标模块及所需的库函数链接在一起,形成一个完整的装入模块。程序的链接方式有以下三种方式:静态链接:在程序运行之前,先将各目标模块及他们所需的库函数链接成一个完整的可执行程序,以后不在拆开。装入时动态链接...原创 2020-02-19 21:41:19 · 1931 阅读 · 0 评论 -
操作系统-银行家算法
银行家算法是最著名的死锁避免算法,其思想是:把操作系统视为银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。数据结构描述(1)可利用资源向量 Available含有m个元素的数组,其中每个元素一类可用的资源数目。比如Available[j] = k,表示系统中现有可用的j类资源有k个。(2)最大需求矩阵Maxn*m矩阵,定义系统中n个进程...原创 2020-02-07 22:16:30 · 3694 阅读 · 1 评论 -
操作系统-死锁
1、死锁的定义在多道程序系统中,由于多个进程的并发执行,改善了系统资源的利用率,并提高了了系统的处理能力。然而,多进程的并发执行也带来了新的问题——死锁。所谓死锁,是指多个进程竞争资源而造成的一种僵局(互相等待),若无外力,这些进程都无法向前推进。具体例子可以参照哲学家进餐问题。2、死锁产生的原因(1)系统资源的竞争通常系统中拥有的不可剥夺资源,其数量不足以满足多个进程运行的要求,使得进程...原创 2020-02-07 00:28:43 · 173 阅读 · 0 评论 -
操作系统-经典同步问题
1、生产者-消费者问题1.1 问题描述一组生产者进程和一组消费者进程共享一个初始为空、大小为n的缓冲区,只有缓冲区没满时,生产者才能把消息放进缓冲区,否则必须等待;只有缓冲区不空时,消费者才能从中取出消息,否则必须等待。由于缓冲区是临界资源,它只允许一个生产者放入消息,或一个消费者从中取出消息。1.2 问题分析(1)关系分析生产者和消费者对缓冲区的访问是互斥关系,生产者和消费者又是一个相...原创 2020-02-05 22:20:04 · 556 阅读 · 0 评论 -
操作系统-信号量
信号量信号量机制是一种功能较强的机制,可用于解决互斥和同步的问题,它只能被两个标准的原语wait(S)和signal(S)访问,也可以记为“P操作”和“V操作”。原语:指完成某种功能且不被分割,不被中断执行的操作序列,通常可由硬件来实现。例如TestAndSet和Swap指令就是ongoing硬件实现的原子操作。原语功能的不被中断执行特性在单处理机上可由屏蔽中断方法来实现。1、整型信息量整...原创 2020-02-04 21:26:15 · 1360 阅读 · 0 评论 -
操作系统-实现临界区互斥的基本办法
1、软件实现方法算法一:单标志法(违背空闲让进)设两个进程P0和P1,以及一个标志量(turn)。turn的初始化turn = 0;规定turn = 0 时,允许P0访问临界区;turn = 1 时,允许P1访问临界区P0进程//p0进程 while(turn != 0);//进入区 临界区代码段 //临界区turn =...原创 2020-02-04 17:17:08 · 4487 阅读 · 0 评论 -
操作系统-进程控制原语
为了实现进程控制,在操作系统内核中,有一组程序专门用于完成对进程的控制,这些原语至少需要包括创建新进程原语,阻塞进程原语,唤醒进程原语,终止进程原语,系统服务对用户开放,即用户可以通过相应的接口来使用它们。1、进程创建原语从PCB集合中申请一个空白的PCB,将调用者参数(如进程外部标识符,初始CPU状态,进程优先数,初始内存及申请资源清单)添入该PCB,设置记账数据。置新进程为“就绪”态。2...原创 2020-02-02 15:34:26 · 10341 阅读 · 0 评论 -
操作系统-什么是多线程?多线程与多任务有什么区别?
多线程是指:在一个程序中可以定义多个线程并同时运行它们,每个线程可以执行不同的任务。多线程和多任务的区别:多任务是针对操作系统而言的,代表操作系统可以同时执行的程序个数;多线程是针对一个程序而言的,代表一个程序可以同时执行的线程的个数,每个线程完成不同的任务。...原创 2020-02-02 14:49:19 · 3039 阅读 · 0 评论 -
操作系统-为什么进程之间的通信必须借助操作系统内核功能?
原因每个进程有自己独立地地址空间。在操作系统和硬件的地址保护机制下,进程无法访问其他进程的地址空间,所以必须借助于操作系统的系统调用函数实现进程之间的通信。进程通信的主要方式(1)共享内存区。通过系统调用创建共享内存区。多个进程可以(通过系统调用)连接同一个共享内存区,通过访问共享内存区实现进程之间的数据交换。使用共享内存区时需要利用信息量解决同步互斥问题。(2)消息传递。通过发送/接收消...原创 2020-02-02 14:40:46 · 2798 阅读 · 0 评论 -
操作系统-父进程创建子进程和主程序调用子程序有何不同?
父进程创建子进程后,父进程与子进程同时执行(并发)。主程序调用子程序后,主程序暂停在调用点,子程序开始执行,直到子程序返回,主程序开始执行。我们可以这么理解:父进程运行的程序,创建了子进程,此时父进程和进程并发执行,是两个进程;主程序调用子程序后,主程序暂停,子程序开始执行,它们还是一个进程。...原创 2020-02-02 14:00:19 · 3272 阅读 · 0 评论 -
操作系统-进程和程序之间的关系(一对一,一对多,多对一,多对多)
进程和程序之间可以形成一对一,一对多,多对一,多对多的关系,分别举例说明在什么情况下会形成这样的关系?进程的定义从不同的角度进程可以有不同的定义,比较典型的定义有:(1)进程是程序的一次执行过程。(2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。(3)进程是具有独立功能的程序在一个...原创 2020-02-02 11:23:03 · 11483 阅读 · 0 评论 -
操作系统-进程甘特图画法
我们在操作系统中常常会碰到CPU和输入输出等设备调度的题目,需要画出甘特图才能比较直观地看出每个进程不同进程之间的时序关系。这里分享一下甘特图的作图技巧,这种题目分两种,分别是可抢占优先权调度和不可抢占优先权调度。可抢占优先权调度这种情况非常简单,我们只需要从优先级最高的进程开始画,然后画优先级次高...原创 2020-02-01 00:43:03 · 21999 阅读 · 5 评论