12-linux系统基础原理

前期基础知识准备,linux进程及作业管理相关的知识:ip命令,ss命令,配置文件,centos7
    ifcfg,ip,netstat,ss命令使用
    配置文件:
        /etc/sysconfig/network-scripts/
            ifcfg-IFNAME 网卡配置文件
            route-IFNAME 静态路由配置文件
    nmcli, nmtui的使用

操作系统的组成部分(从底层硬件到顶层应用程序)

    应用程序
    库           进行library调用,为了便于编程
    内核         kernel
    硬件

内核的功用:进程管理,文件系统,网络功能,内存管理,驱动程序,安全功能

指令发给CPU运行,需要特权操作如何处理?
    如果程序不是面对硬件研发,而是面对应用程序和库进行的研发,需要调用硬件的时候要通过内核,等待内核反馈调用结果,等待调用的过程,程序会停下来了(软中断),内核把调用的功能放到CPU上,内核反馈调用结果后,程序继续执行。
    运行用户代码时表示运行在用户模式下,执行内核代码时,表示运行在内核模式下,用户模式也叫用户空间,内核模式也叫内核空间。
    在用户模式与内核模式之间变化叫做模式切换。如果大量时间都花在内核模式上,那么程序是不理想的。
    注意:这里有一个概念,特权指令,一般只能内核可以调用/管理硬件,这里内核不是指管理员

如何能实现将有限的资源分配到进程无限反复连接中?
    利用时间节点,任务结束立即换其他任务,多个cpu如何排序?根据进程的优先级,如果一个进程霸占CPU如何处理?利用优先级更高的对它进行处理,这里一个高级别的工具就是进程调度工具。换到下一个进程时,会把前面的进程覆盖掉,多次运行时如何防止丢失?通过把进程运行当前状态保存下来,CPU中有计数器可以进行记录。但也会不断会发生保存线程切换线程。线程的信息保存在哪里?保存在内核,因此内核要了解每个线程。
    内核为每个进程创建一个源数据结构,特定的组织形式,

process:运行中的程序的一个副本
    存在生命周期,从创建开始直到结束

Linux内核存储进程信息的固定格式:task struct
    多个任务的task struct组件的链表:task list
    列表,有先后顺序,指向下一个进程,最后一个指向第一个,也有双向的列表,双向循环列表。
    当进程试图运行特权指令时,cpu就会立即唤醒内核,因为cpu会被中断触发,中断优先级非常高,此时只允许内核处理进程,

进程创建:
    开机的时候,等待内核启动,内核开始接管后,内核启动第一个进程init,init后续用户空间的所有管理功能,负责向内核提交指令。
    init 由kernel创建
    进程都由其父进程创建
        fork(),clone()
        子进程不能离开父进程存活,子进程与父进程使用同一个内存空间,子进程要修改数据,子进程把父进程的数据复制出来,放在新的内存区间,即写实复制。子进程需要由父进程销毁。子进程开始工作的时候,父进程处于静默状态,直到子进程完成工作并反馈给父进程,父进程继续执行。
        多个进程需要运行,但CPU和内核只有一个?如何判读先运行哪个?等待运行的进程很多的时候如何处理?进行遍历。
        海量进程的时候,遍历太慢怎么办?
        扫描每个队列的首部,先进行总体判断,程序算法的复杂度
            big o的概念
                o(1)复杂度增加,时间恒定,o(logn),o(n),o(n^2),o(2^n)
    
    进程优先级:
        0-139
            1-99 实时优先级
            100-139 静态优先级 用户可以调动
                数字越小,优先级别越高

            nice值
                -20,19对应100-139

    进程内存
        同一进程涉及的数据不同时,对内存的占用也是不同的,如何确定分配的内存?把设备内存切割成固定大小的片段,一般时4k,从众多页框中找一些空闲的分给进程,将多个片段虚拟化合并成一个空间分配给进程。
        线性地址空间,名义上进程可以使用的最大可能空间。
        物理地址空间,真正分配给进程使用的实际空间。
        这里有先进后出和后进后出的方式
        LRU, 最近最少使用算法
        如果原先地址被占用,必须生成新的地址,重新映射。
        缺页异常,需要重新载入,有大异常和小异常的概念。
        常驻内存级,不能被交换,虚拟内存集,可以被交换。
        page frame, 页框,用于存储页面数据
        MMU, memory management unit

    IPC, inter process communication
        同一主机上
            signal
            shm shared memory
            semenohor
        不同主机上:
            rpc,remote procecure call 远程调用
            socket, 保存自己的地址和端口以及通信方的地址和接口,通过tcp或udp协议交换

linux内核,抢占式多任务

    进程类型
        守护进程,daemon,在系统引导过程中启动的进程,跟终端无关的进程
        用户进程,用户终端启动的进程,前台进程,跟终端相关,通过终端启动的进程
            注意,也可把在前台启动的进程送往后台,以守护模式运行
    进程状态
        运行态,running
        就绪态,ready
        睡眠态
            可中断,interruptable
            不可中断,uninterruptable
        停止态,暂停于内存中,但不会被调度,除非手动启动之,stopped
        僵死态,zombie

        I/O两个过程,磁盘到内存,内存到进程内存。存在同步和异步的概念。

    进程的分类
        cpu-bound cpu密集型
        io-bound io密集型

        内核监测到进程占用cpu过多,会将其优先级降低

    还可以深入学习《linux内核的设计与实现》,《深入理解linux内核》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值