计算机综合知识

  • 父进程与子进程
    子进程继承父进程
    用户号UIDs和用户组号GIDs
    环境Environment
    堆栈
    共享内存
    打开文件的描述符
    执行时关闭(Close-on-exec)标志
    信号(Signal)控制设定
    进程组号
    当前工作目录
    根目录
    文件方式创建屏蔽字
    资源限制
    控制终端
    子进程独有
    进程号PID
    不同的父进程号
    自己的文件描述符和目录流的拷贝
    子进程不继承父进程的进程正文(text),数据和其他锁定内存(memory locks)
    不继承异步输入和输出
    父进程和子进程拥有独立的地址空间和PID参数。
    子进程从父进程继承了用户号和用户组号,用户信息,目录信息,环境(表),打开的文件描述符,堆栈,(共享)内存等。
    经过fork()以后,父进程和子进程拥有相同内容的代码段、数据段和用户堆栈,就像父进程把自己克隆了一遍。事实上,父进程只复制了自己的PCB块。而代码段,数据段和用户堆栈内存空间并没有复制一份,而是与子进程共享。只有当子进程在运行中出现写操作时,才会产生中断,并为子进程分配内存空间。由于父进程的PCB和子进程的一样,所以在PCB中断中所记录的父进程占有的资源,也是与子进程共享使用的。这里的“共享”一词意味着“竞争”

    LINUX上对于多进程,子进程继承了父进程的共享内存,信号掩码,已打开的文件描述符

  • 文件系统管理的最小磁盘空间是—-簇
    微软操作系统(DOS、WINDOWS等)中磁盘文件存储管理的最小单位叫做“簇”
    扇区:硬盘不是一次读写一个字节而是一次读写一个扇区(512个字节)
    簇:系统读读写文件的基本单位,一般为2的n次方个扇区(由文件系统决定)
    块可以包含若干页,页可以包含若干簇,簇可以包含若干扇区

  • 在栈空的情况下,一定不能作出栈操作,否则产生溢出。(对的,TODO)
    栈一定是顺序存储的线性结构。(还有链式)
    空栈是所有元素都为0的栈。(空栈的栈顶是-1)

  • 值类型和引用类型的主要区别在于:
    1)范围方面
    C#的值类型包括:结构体(数值类型、bool型、用户定义的结构体),枚举,可空类型。
    C#的引用类型包括:数组,用户定义的类、接口、委托,object,字符串。

    2)内存分配方面:
    数组的元素不管是引用类型还是值类型,都存储在托管堆上。
    引用类型在栈中存储一个引用,其实际的存储位置位于托管堆。简称引用类型部署在托管推上。而值类型总是分配在它声明的地方:作为字段时,跟随其所属的变量(实 例)存储;作为局部变量时,存储在栈上。(栈的内存是自动释放的,堆内存是.NET中会由GC来自动释放)
    3)适用场合
    值类型在内存管理方面具有更好的效率,并且不支持多态,适合用做存储数据的载体;引用类型支持多态,适合用于定义应用程序的行为。
    引用类型可以派生出新的类型,而值类型不能,因为所有的值类型都是密封(seal)的;
    引用类型可以包含null值,值类型不能(可空类型功能允许将 null 赋给值类型,如 int? a = null; );
    引用类型变量的赋值只复制对对象的引用,而不复制对象本身。而将一个值类型变量赋给另一个值类型变量时,将复制包含的值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值