操作系统基本概念

本文介绍了操作系统的基本概念,包括内存管理的分页、分段、虚拟内存机制,详细讲解了内存抖动及其原因。同时,讨论了进程的三种状态:就绪、执行和阻塞,并阐述了Python中的线程安全与多线程、多进程操作。此外,还提到了内存泄漏问题以及Linux删除操作速度更快的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

①.内存管理

一分页机制:逻辑地址和物理地址分离的内存分配管理方案

程序的逻辑地址划分为固定大小的页(page)

物理地址划分为同样大小的帧(frame)

页表  逻辑地址与物理地址的映射

二分段机制:满足代码的一些逻辑需求

数据共享,数据保护,动态链接

通过段表实现逻辑地址与物理地址的映射关系

每个段内部是连续内存分配,段和段之间是离散分配

三分段与分页区别

页处于内存利用率的角度提出的离散分配机制

段处于用户角度,用于数据保护,数据隔离等用途的管理机制

页的大小是固定的,操作系统决定;段大小不确定,用户程序决定

四虚拟内存:通过把一部分暂时不用的内存信息放到硬盘上

局部性原理:程序运行的时候只有部分必要的信息转入内存

内存中暂时不需要的内容放到硬盘上

系统似乎提供了比实际内存大得多的容量,称之为虚拟内存

四.内存抖动

内存抖动(Thrashing)一般是内存分配算法不好,内存太小或者程序的算法不佳引起的页面频繁地从内存调入/调出的行为

[即本质是频繁的页调度行为]

频繁的页调度,进程不断产生活页中断

置换一个页,又不断再次需要这个页

运行程序太多,页面替换策略不好,终止进程或者增加物理内存

②.进程的三种基本状态:

1>就绪( Ready)状态:当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。

2>执行( Running)状态:当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。

3>阻塞( Blocked)状态:正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可以有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。

③python操作

一Python哪些操作是线程安全的?

◆一个操作可以在多线程环境中安全使用,获取正确的结果

◆线程安全的操作好比线程是顺序执行而不是并发执行的 i +=1

◆一般如果涉及到写操作需要考虑如何让多个线程安全访问数据

 二如何保证线程安全:

互斥量(锁):通过互斥机制防止多个线程同时访问公共资源

信号量:控制同一时刻多个线程访问同一个资源的线程数

事件(信号):通过通知的方式保持多个线程同步

三进程间通信的方式

共享内存,信号量,套接字:最常用,web应用

四Python中如何使用多线程

theading模块

threading.Thread类用来创建线程

start()方法启动线程

◆可以用join()等待线程结束

五Python中如何使用多进程

Python有GIL,可以用多进程实现cpu密集程序

◆ multiprocessing多进程模块

◆ Multiprocessing.Process类实现多进程

◆ 一般用在cpu密集程序里,避免GIL的影响

④.内存泄露

一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显式释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。

⑤为什么Linux删除操作比界面化操作快

1.图像界面化操作的进程切换

2 缓存管理机制

3 磁盘

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值