操作系统
ludan_xia
我很菜 但是我会 一步步地 努力!
展开
-
进程与线程切换的区别
https://blog.csdn.net/github_37382319/article/details/97273713原创 2020-05-08 00:16:37 · 201 阅读 · 0 评论 -
docker(扫盲)
https://blog.csdn.net/gui951753/article/details/81148067?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommen...原创 2020-05-06 16:15:43 · 134 阅读 · 0 评论 -
管程
一、为什么要引入管程1、把分散在各进程中的临界区集中起来进行管理2、防止进程有意或无意的违法同步操作3、便于使用高级语言书写程序二、管程的定义和属性定义:局部于自己的若干公共变量及其说明和所有访问这些公共变量的过程所组成的软件模块属性:共享性、安全性、互斥性三、管程的结构四、管程与进程的比较管程 进程 定义的是公用数据结构 私用...原创 2020-04-27 10:22:03 · 293 阅读 · 0 评论 -
临界区管理
一.临界区与临界资源(一)、概念并发进程中与共享变量有关的程序段叫“临界区”, 共享变量代表的资源叫“临界资源”(二)、临界区调度原则:互斥使用,有空让进忙则等待,有限等待择一而入,算法可行二、实现临界区的管理(一)、Peterson算法•bool inside[2];•inside[0]=false;•inside[1]=false;...原创 2020-04-25 23:07:31 · 701 阅读 · 0 评论 -
处理器的调度
一、处理器调度的层次(一)、不同级别的调度1、高级调度:它用于确定把后备队列上的哪些作业调入内存,并为之建立进程,分配其所需的资源,然后将它挂在就绪队列上。2、中级调度:引入中级调度的主要目的是为了提高内存的利用率和系统的吞吐量。内存中不能有太多的进程,把进程从内存移到外存,当内存有足够空间时,再将合适的进程换入内存,等待进程调度。中级调度实际上就是存储器管理中的对调功能。3、低...原创 2020-04-25 10:46:04 · 1836 阅读 · 0 评论 -
进程及其实现
一、进程的定义1、进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位2、可以用来共享资源又能描述程序并发为什么要引入进程概念1、刻画程序的并发性:程序是并发执行的,这是由于资源共享和竞争问题,程序自身只是计算任务的指令和数据的描述,是静态的,进程是动态描述2、共享性:可重入程序二、进程三态模型及其转换...原创 2020-04-25 00:12:58 · 881 阅读 · 0 评论 -
中断以及相关的概念
一、中断的概念中断是指程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行程序的运行转而执行相应的事件处理程序,待处理完成后再返回原程序被中断处或调度其他程序执行的过程二、中断的分类1、外中断:是指来自处理器之外的中断信号,包括时钟中断、键盘中断、设备中断、外中断又可分为:可屏蔽中断和不可屏蔽中断2、内中断:来自处理器内部,通常是由程序执行中,发现与当前指令相关联的...原创 2020-04-23 22:47:09 · 3062 阅读 · 0 评论 -
存储器的状态
一、特权指令与非特权指令1.从资源管理和控制程序执行的角度出发,把指令系统中的指令分作两部分:特权指令和非特权指令2.特权指令:只能提供给操作系统的核心程序使用的指令。如启动I/O设备、设置时钟、控制中断屏蔽位、清主存、建立存储键,加载PSW二、内核态与用户态处理器如何知道当前OS是一般用户程序在运行呢?可以根据PSW中的处理器状态标志三、处理器状态的转换...原创 2020-04-23 21:56:05 · 664 阅读 · 0 评论 -
用户态和核心态的概念以及为什么要区别?以及两者之间的切换
一、用户态和核心态的概念用户态:内核态与用户态是操作系统的两种运行级别,当程序运行在3级特权级上时,就可以称之为运行在用户态,因为这是最低特权级,是普通的用户进程运行的特权级,大部分用户直接面对的程序都是运行在用户态;核心态:当程序运行在0级特权级上时,就可以称之为运行在内核态。运行在用户态下的程序不能直接访问操作系统内核数据结构和程序。两种状态的主要区别处于用户...原创 2020-04-22 23:30:48 · 10487 阅读 · 0 评论 -
堆与栈的区别(程序内存布局场景下)
程序内存分区中的堆与栈栈简介栈由操作系统自动分配释放 ,用于存放函数的参数值、局部变量等,其操作方式类似于数据结构中的栈堆简介堆由开发人员分配和释放, 若开发人员不释放,程序结束时由 OS 回收,分配方式类似于链表。3 堆与栈区别堆与栈实际上是操作系统对进程占用的内存空间的两种管理方式,主要有如下几种区别:(1)管理方式不同。栈由操作系统自动分配释...原创 2020-04-21 16:45:40 · 159 阅读 · 0 评论 -
编译性语言和解释性语言的区别
一。编译性语言(1)只须编译一次就可以把源代码编译成机器语言,后面的执行无须重新编译,直接使用之前的编译结果就可以;因此其执行的效率比较高; (从编译次数这个角度)(2)编译性语言代表:C、C++、Pascal/Object Pascal(Delphi);(3)程序执行效率比较高,但比较依赖编译器,因此跨平台性差一些;(效率)不同平台对编译器影响较大。如:(1)16位系统下i...转载 2020-04-21 12:36:47 · 750 阅读 · 0 评论 -
进程间七种通信方法,IPC的各种应用场景和优缺点
进程间的7种通信方式传统的通信方式:有名管道无名管道信号 IP...原创 2020-04-21 12:21:38 · 5755 阅读 · 0 评论 -
内存泄露以及检测
一、内存泄漏的定义 内存泄漏指的是在程序里动态申请的内存在使用完后,没有进行释放,导致这部分内存没有被系统回收,久而久之,可能导致程序内存不断增大,系统内存不足……引发一系列灾难性后果。二、Linux系统下内存泄漏的检测方法(valgrind) 编译:g++ -g -o test test.cpp 使用:valgrind --tool=memcheck ./test可以...原创 2020-04-20 23:07:54 · 194 阅读 · 0 评论 -
线程和进程间的区别
从计算机的发展史角度来说一下进程和线程,或许更好理解其中的不同,在早期计算机是没有线程这么一说的,进程就是最基本的运行单位,包含静态的资源和动态的计算,特意将动态和静态两个词语强调了一下,是因为随着计算机性能的提升,和系统设计的改进,为了避免进程间调度带来的资源开销,同时提升系统的并发性能,于是在进程中引入了线程的概念,专门来负责程序的动态部分。定义方面:进程是程序在某个数据集合上的一次...原创 2020-04-20 23:01:54 · 105 阅读 · 0 评论 -
new和malloc的区别
解题思路:(1)malloc和new都是在堆上开辟内存的malloc只负责开辟内存,没有初始化功能,需要用户自己初始化;new不但开辟内存,还可以进行初始化,如new int(10);表示在堆上开辟了一个4字节的int整形内存,初始值是10,再如new int[10] ();表示在堆上开辟了一个包含10个整形元素的数组,初始值都为0。(2)malloc是函数,开辟内存需要传入字节数,如ma...原创 2020-04-20 22:34:59 · 207 阅读 · 0 评论