1、操作系统总体介绍

CPU: 就像人的大脑,主要负责相关事情的判断以及实际处理的机制。

查询指令: cat /proc/cpuinfo

内存: 大脑中的记忆区块,将皮肤、眼睛等所收集到的信息记录起来的地方,以供CPU进行判断。

查询指令: cat /proc/meminfo

1)物理内存

物理内存,就是我们将内存条插在主板内存槽上的内存条的容量的大小。看计算机配置的时候,主要看的就是这个物理内存

2)虚拟内存

Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。

关系:windows中虚拟内存和物理内存可能都会被使用,linux中,只有物理内存使用完了,才会使用虚拟内存

硬盘:大脑中的记忆区块,将重要的数据记录起来,以便未来再次使用这些数据。

查询指令: fdisk -l (需要root权限)

2、内存和硬盘的关系

具体命令后面会介绍。

3、操作系统监控命令>单独写一份

·vmstat

·sar

·iostat

·top

·free

·uptime

·netstat

·ps

·strace

·lsof

4、如何分析操作系统

实际流程: 读数据>数据>硬盘>虚拟内存(swaP)>内存>cpu缓存>执行队列。分析方向,正好相反。

5、各个部分常出现的漏洞

CPU: 容易出现该类瓶颈的邮件服务器、动态web服务器

内存: 容易出现该类瓶颈的打印服务器、数据库服务器、静态web服务器

磁盘I/O: 频繁读写操作的项目

网络带宽: 频繁大量上传下载项目

6、Linux本身的一些优化

1)系统安装优化

当安装linux系统时,磁盘划分、 SWAP内存的分配都直接影响系统性能。对于虚拟内存SWAP的设定,现在已经没有了所谓虚拟内存是物理内存两倍的要求,但是根据经验,如果内存较小(物理内存小于4GB),一般设置SWAP交换分区大小为内存的2倍;如果物理内存大约4GB小于16GB,可以设置SWAP大小等于或者略小于物理内存即可;如果内存在16GB以上,原则上可以设置SWAP为0,但最好设置一定大小的SWAP

2)内核参数优化

例如,如果系统部署的oracle数据库应用,那么就需要对系统共享内存段( kernel.shmmax, kenerl.shmmni, kernel.shmall)。

系统信号量( kernel.sem)、文件句柄( fs.file0max)等参数进行优化设置;如果部署的WEB应用,那么就需要根据web应用特性进行网络参数的优化,例如修改:

net.ipv4.ip_local_port_range、net.ipv4.tc_tw_reuse、net.core.somaxconn等网络内核参数。

3)文件系统优化

在linux下可选的文件系统有ext2,、 ext3、 xfs、 ReiserFS。

linux标准文件系统是从VFS开始,然后ext、 ext2, ext2是linux上的标准文件系统, ext3是在ext2基础上增加日志形成的。从VFS到ext3,设计思想没有太大变化,都是早期UNIX家族基于超级块和inode的设计理念设计而成。

XFS文件系统是SGI开发的一个高级日志文件系统,通过分布处理磁盘请求、定位数据、保持cache的一致性来提供对文件系统数据的低延迟、高带宽的访问,因此XFS极具伸缩性,非常健壮,具有优秀的日志记录功能、可扩展性强、快速写入等优点。

ReiserFS在Hans Reiser领导下开发出来的一款高性能的日志文件系统,通过完全平衡树来管理数据,包括文件数据、文件名及日志支持等。与ext2、 ext3相比,最大的优点是访问性能和安全性大幅提升。具有高效、合理利用磁盘空间,先将的日志管理机制,特意的搜寻方式,海量磁盘存储等优点

7、重点知识:物理内存和虚拟内存

1.如何查看物理内存和虚拟内存?

Top 命令可以查看物理内存和虚拟内存的数值

2.Buffer

是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界介面传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。

3.Cache

CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度

4.CPU中断

当CPU执行完一条现行指令时,如果外设向CPU发出中断请求,那么CPU在满足响应的情况下,将发出中断响应信号,与此同时关闭中断,表示CPU不在受理另外一个设备的中断。

这时,CPU将寻找中断请求源是哪一个设备,并保存CPU自己的程序计数器(PC)的内容。然后,他将转移到处理该中断源的中断服务程序。CPU在保存现场信息,设备服务(如交换数据)以后,将恢复现场信息。在这些动作完成以后,开放中断,并返回到原来被中断的主程序的下一条指令。

5.上下文切换

上下文切换(Context Switch) 或者环境切换

多任务系统中,上下文切换是指CPU的控制权由运行任务转移到另外一个就绪任务时所发生的事件。

在操作系统中,CPU切换到另一个进程需要保存当前进程的状态并恢复另一个进程的状态:当前运行任务转为就绪(或者挂起、删除)状态,另一个被选定的就绪任务成为当前任务。上下文切换包括保存当前任务的运行环境,恢复将要运行任务的运行环境。

进程上下文用进程的PCB(进程控制块,也称为PCB,即任务控制块)表示,它包括进程状态,CPU寄存器的值等。

通常通过执行一个状态保存来保存CPU当前状态,然后执行一个状态恢复重新开始运行。

上下文切换会对性能造成负面影响。然而,一些上下文切换相对其他切换而言更加昂贵;其中一个更昂贵的上下文切换是跨核上下文切换(Cross-Core Context Switch)。一个线程可以运行在一个专用处理器上,也可以跨处理器。由单个处理器服务的线程都有处理器关联(Processor Affinity),这样会更加有效。在另一个处理器内核抢占和调度线程会引起缓存丢失,作为缓存丢失和过度上下文切换的结果要访问本地内存。总之,这称为“跨核上下文切换”。

6.进程和线程

①进程概念

进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的单位。

②线程概念

线程是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。如果把进程理解为在逻辑上操作系统所完成的任务,那么线程表示完成该任务的许多可能的子任务之一。

③进程和线程的关系

(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程;

(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源;

(3)处理机分给线程,即真正在处理机上运行的是线程;

(4)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。

文章来源:网络 版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理

Linux 操作系统基础知识总结相关推荐

  1. Linux操作系统基础知识学习

    Q1.什么是GNU?Linux与GNU有什么关系? A: 1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundation,FSF)的一个项目, ...

  2. 只要你认真看完一万字☀️Linux操作系统基础知识☀️分分钟钟都吊打面试官《❤️记得收藏❤️》

    只要你认真看完一万字☀️Linux操作系统基础知识☀️分分钟钟都吊打面试官<❤️记得收藏❤️> 目录

  3. Linux操作系统基础知识命令参数详解

    Linux操作系统 RAID分组 RAID JBOD RAID JBOD的意思是Just a Bunch Of Disks,是将多块硬盘串联起来组成一个大的存储设备,从某种意义上说这种类型不被算作RA ...

  4. Linux操作系统基础知识

    〇.操作系统基础 1.什么是操作系统 操作系统(Operating System, OS),介于硬件资源和应⽤程序之间的⼀个系统软件. 2.操作系统的功能 操作系统位于硬件资源之上,管理硬件资源:应⽤ ...

  5. Linux 操作系统基础知识

    1.操作系统总体介绍 •CPU: 就像人的大脑,主要负责相关事情的判断以及实际处理的机制. 查询指令: cat /proc/cpuinfo •内存: 大脑中的记忆区块,将皮肤.眼睛等所收集到的信息记录 ...

  6. Linux操作系统基础知识(适用于Centos/Ubuntu)

    Linux学习 一.Linux 终端命令 1.常用Linux命令的使用 2. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相应功能的英文 ...

  7. 3_1 操作系统定义、分类及功能【包含linux操作系统基础知识】

    3.01 操作系统概述 接口的区分: 人机之间的接口:命令,窗口 应用软件与硬件之间的接口:api的接口 进程管理 3.02 进程管理--进程状态转换图 进程的状态:操作系统当中对进程进行管理的时候, ...

  8. Linux操作系统基础知识(一)

    目录 Linux目录用途 分区.inode.扇区.块.软链接与硬链接 挂载.文件系统结构 VMware的网络配置以及远程登录管理工具putty 命令格式.目录处理命令ls.文件权限说明 目录处理命令: ...

  9. Linux学习总结(44)——Linux操作系统基础知识

    一.Linux操作系统概述 Q1.什么是GNU?Linux与GNU有什么关系? A: 1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundat ...

  10. Linux(一)操作系统基础知识

    Linux操作系统基础知识 1.Linux简介与程序开发环境 1.1 什么是Linux? Linux是一个可以自由发布的类UNIX内核实现,它是一个操作系统的底层核心.Linux是由芬兰赫尔辛基大学的 ...

最新文章

  1. 2022-2028年中国汽车零部件行业市场研究及前瞻分析报告
  2. Microsoft Dynamics CRM 2015 新增功能 介绍 高级查找功能
  3. jinja2的转义详解
  4. bom_clear.php,thinkphp清除BOM方法
  5. 我的世界linux开服权限不足,我的世界路由器开服怎么获得超级管理员权限
  6. css3 下边框缓缓划过_干货来袭!web前端开发工程师必看之如何使用CSS3实现瀑布流效果?...
  7. 高德地图iOS SDK使用
  8. Cent OS 7配置Dnsmasq
  9. Dropout抑制过拟合
  10. 中秋佳节,献上笔试题一道,祝各位事业蒸蒸日上!
  11. Oracle 函数进阶、分组排序、列转行、cast 类型转换、dbms_random 生成随机数、sys_guid
  12. Java程序员须知的七个日志管理工具(转)
  13. Django-天天生鲜项目
  14. 基于sklearn的文本特征提取与分类
  15. 在 Linux 中如何删除分区
  16. 管理之旅(01)游学阿里
  17. CF-Predictor安装教程
  18. 计算机网络隧道技术,隧道技术-高级计算机网络.ppt
  19. IBM WebSphere MQ安装及使用教程
  20. 谈谈程序员如何快速提升职业技能

热门文章

  1. C++ | Qt编译DLL
  2. Axure RP入门知识-基础功能介绍
  3. 成功在中东和北非地区发布应用或游戏的 7 个技巧
  4. 小米浏览器html文件怎么打开方式,怎么设置浏览器-开启小米浏览器这三个功能,切换、搜索、编辑都让你事半功倍...
  5. 机器学习强化(数据清洗、实战理解)
  6. 《嵌入式 – GD32开发实战指南》第7章 定时器
  7. 数学建模常用模型10 :数据包络(DEA)分析法(投入产出法)
  8. 丁磊推荐《你的灯亮着吗》为三大管理必读书
  9. Win 10 搭建 EasyDarwin 流服务器
  10. 匿名管道 与 命名管道