操作系统基础知识总结(一)

1. 进程和线程的区别

进程

进程,即正在运行的程序,程序从硬盘载入到内存就变成进程。进程是资源的拥有者,每个进程都拥有着自己的内存空间与多个线程。

线程

线程是指令的执行者,是计算机执行指令的基本单元,一个进程可以拥有多个线程。线程的引入主要有如下原因:

  1. 响应:与进程相比,创建线程不涉及或较少涉及资源分配,因此速度较快
  2. 资源共享:线程间可以共享资源,同一个进程内两个线程通信快
  3. 经济:创建线程不涉及或较少涉及资源分配
  4. 适合计算机的多处理器架构

线程既有共享的资源,也有自己私有的资源,JVM中线程持有的资源一般如下:

  • PC(程序计数器):线程私有
  • 栈:线程私有
  • 堆:线程共享
  • 方法区:线程共享

在操作系统中,线程还会细分为用户空间的用户级线程与内核空间的内核级线程,两种线程之间还有多种关系模型,在此不再赘述。

2. 死锁的必要条件,怎么处理死锁

死锁有四大必要条件,缺一不可:

  • 互斥:至少有一个资源同时只能被一个进程所拥有的
  • 占有且等待:一个进程必须持有至少一个资源去等待其他的资源
  • 非抢占时:资源不能被抢占,一个资源只有当进程执行完毕才会被释放
  • 循环等待:多个进程循环等待其他进程释放资源

对付死锁我们大致可以从三个方面入手:

  1. 死锁预防与避免:不允许程序死锁
  2. 死锁检测与恢复:允许程序死锁,死锁后进行恢复工作
  3. 忽略死锁:出现死锁直接不管(大多数操作系统的做法)

3. 内存管理方式:段存储,页存储,段页存储

段存储示意图如下:

用户程序通过逻辑内存的段号查找段表,获取段的物理内存初始地址与长度,然后操作系统即可在物理内存上读取相应的数据。

使用段存储会出现外部碎片。

页存储示意图如下:

操作系统先把内存空间切分成大小相等的块,用户程序根据自身的大小占用一定的帧。

用户程序通过逻辑内存的页号去页表查找对应的物理内存的块号(帧号),然后操作系统在物理内存上读取相应的数据。

使用页存储会出现内部碎片。

有些操作系统还会有TLB(页表缓存),把一些常用的页面放在TLB中方便快速查询,要是TLB中查询失败再去页表查询。

段页存储即先分段再分页的内存管理办法,其示意图如下:

4. 进程的几种状态

进程有以下几种状态:

  • New(创建状态):表示进程正在被创建
  • Running(运行状态):表示进程正在执行
  • Waiting(等待状态):表示进程正在等待事件的发生
  • Ready(就绪状态):表示进程已经准备好,等待分配CPU处理器
  • Terminated(终止状态);表示进程已经执行完毕,被终止
时间: 2024-10-15 05:34:42

操作系统基础知识总结(一)的相关文章

操作系统基础知识

操作系统的分类: 批处理操作系统.分时操作系统.实时操作系统.网络操作系统.分布式操作系统.个人计算机操作系统. 批处理操作系统: 优:资源共享,自动调度,提高了资源利用率和系统分吞吐量. 劣:无交互,周转时间较长. 多道批处理程序要处理的问题:同步互斥,内存大小,使用效率,内存保护 分时系统:联机多用户交互式操作系统,中断技术,时间片轮转 优:人机交互性好,共享主机 ,用户独立性 实时操作系统:联机系统,对外部请求能够在规定的时间内完成. 特点:有限等待 有限响应 用户控制 可靠性高 出错处理

《嵌入式操作系统内核调度》笔记:1 操作系统基础知识

很偶然地搜到这本书,最近买了纸版书,作者有个新浪博客和淘宝配套的开发板,可以自己搜下. 笔记主要记录下看书时画下的,因为是说明性的文字,所以没有经过编码,自己理解也是很模糊的. 写下来发到博客上,感觉能提高学习动力,可能是有潜在的交流作用吧. ? ? 为什么要有操作系统? 最初的时候其实是没有的,CPU的功能不就是执行指令吗,最初人们就写个程序让计算机去跑嘛,那时是没有操作系统观念的.后来,跑了一个程序,自然就会想跑两个程序,一山不容二虎,两个程序麻烦就来了,但还不是太大,能跑两个了,人们自然想

操作系统基础知识总结(重要)

1. 操作系统的四个特性 并发:同一段时间内多个程序执行(注意区别并行和并发,前者是同一时刻的多个事件,后者是同一时间段内的多个事件) 共享:系统中的资源可以被内存中多个并发执行的进线程共同使用 虚拟:通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个 异步:系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进 2,进程与线程 2.1 多进程的组织形式包括下面3个关键部分: 1)PCB(Process Control Block):用来记录进程信息的

Linux操作系统基础知识

继续补充一点vim指令的一些知识点,当需要同时操作多个文件时,使用vim指令可同时打开几个文件加载至内存中.命令格式为vim file1 file2 file3,其中不同文件用空白字符隔开,默认操作第一个文件,当需要操作其他文件时,在末行模式下输入:next/:prev/:first/:last分别对应为下一个.前一个.第一个.最后一个文档的内容.当需要同时查看不同文件内容时,使用选项-o/O为竖屏/横屏分屏显示文件内容.在分屏情况下切换当前操作文件使用ctrl+w+左右键,ctrl前可加数字以

操作系统基础知识2

一.进程管理 1.进程与线程有什么区别 进程是程序关于某个数据集合上的一次运行活动,它是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU 调度和分配的基本单位,线程基本上不拥有系统资源. 区别如下: a.一个线程必定属于也只能属于一个进程:而一个进程可以拥有多个线程并且至少拥有一个线程. b.属于一个进程的所有线程共享该线程的所有资源,包括打开的文件.创建的Socket 等.不同的进程互相独立. c.线程又称为轻量级进程. d.进程是程序的一次执行,线程可以理解为程序中一段

Linux操作系统基础知识vi/vim命令

之前介绍了nano编辑器,vi/vim在功能上更加强大,所以一般都使用vi/vim编辑器编写脚本.vim在vi基础上添加了更加友好的编辑界面,也更容易发现错误. 也可以称为模式化编辑器:编辑模式(命令模式).末行模式.插入模式(输入模式).替换模式.可视化模式,通过良好的结合各种模式进行脚本编辑. 一.vi/vim的打开方式: vi/vim:打开vi/vim的界面: vim file:file存在,则打开并将光标默认放置在第一行第一个字符: file不存在,则以新文件的方式打开,若保存,则文件被

操作系统基础知识(一)操作系统五大管理功能以及各自的作用

1.进程与处理器管理:负责对CPU时间的管理,将其合理地分配给每个进程. 2.存储管理:为各个程序及其使用的数据分配存储空间,并保证它们互不干扰. 3.文件管理:负责文件的存储.检索.共享和保护,为用户提供文件操作的方便. 4.设备管理:根据用户提出使用设备的请求进行设备的分配,同时还能随时接受设备的请求. 5.作业管理:为用户提供一个使用计算机的界面,使其方便地运行自己的作业,并对所有进行系统的进行调度和控制,尽可能高效地利用整个系统的资源.(完成某个独立任务的程序及其所需的数据组成一个作业)

【linux_笔记】-操作系统基础知识

常见的CPU系列(硬件架构): 1.ARM(移动硬件平台):只生产知识产权不生产设备,只负责设计芯片,真正生产的都是由三星       高通这些生产的.手持智能设备在硬件架构上都属于ARM.    2.x86:指的是intel或者AMD的x86系列,32位的平台    --32位和64位操作系统指的是CPU一次处理数据的能力是32位还是64位    --也就是大马路并行32条车道与并行64条车道的区别,因此,64位的可以实现的流量要比32位来              的大得多.    3.x6

计算机操作系统基础知识-2

Shell Shell是操作系统与用户交互的界面.表现为通过控制台执行用户命令.本身不执行命令,仅仅是组织和管理命令. 脚本:类似程序的方式执行一系列的逻辑顺序的命令序列完成复杂的功能和人机交互.保存在文件中,是shell命令的集合. 系统调用 定义:操作系统内核为应用程序提供的服务/函数 特点: 一般涉及核心操作和硬件资源 运行于核态 函数具有唯一ID 产生中断,且为自愿中断 进程管理 定义:是程序在某个数据集合上的一次运行活动.程序的一次运行即为一个进程. 特性: 动态性 并发性 异步性 独