zoukankan      html  css  js  c++  java
  • C#进程、线程、CPU

    ===============================================C#线程===========================================================================

    基本知识:

    线程和进程

    1.在创建进程时,内核会为进程创建相应的堆栈,每个进程会有两个栈,一个是用户栈,另外一个则是内核栈

    2.一个进程中,包含多个线程

    3.当你打开一个程序很慢,这是因为此时的CPU运行的进程数太多,该进程需要等待调度,才能真正运行

    4. 一般来说,打开一个应用程序就会创建一个进程

    5. 一个进程的内存空间是可以共享的,每个线程都可以使用这些共享内存

    6. 一个线程在占用某些共享内存时,其他的线程就不能进来,必须要等前一个线程走完才能够使用共享内存,这个时候就需要加一把互斥锁(mutex),告诉其他线程这块共享内存已被占用!防止多线程读写通一块共享内存

    7.有些内存区域,只能供给固定的线程使用,这里就会牵扯一个词叫信号量(semaphore)数量,即这个内存区域只能供给固定数目的线程访问,满了线程后,后面的线程只能排队,直到有线程让出,后面的线程才能进入,保证多个线程不会冲突


    =============================操作系统的设计======================================================
    1. 以多进程形式,允许多个任务同时运行

    2. 以多线程的方式,把进程分为不同的部分进行

    3. 协调机制:防止进程与线程之间产生的冲突,运行进程之间内存共享

    ===============================CPU================================================================

    1.计算机的核心是CPU,它负责所有的计算任务,时刻在运行

    2.单个CPU一次只能运行一个任务

    内核:提供操作系统最基本的功能,负责管理系统的进程、线程、设备驱动程序、文件和网络系统

    Cpu寄存器: 是Cpu用来存储数据的小型存储区域

    用户模式栈:在函数执行执行之前记录函数的地址,然后等函数调用完之后,再返回前面所记录的地址

    内核模式栈:在调试的时候 不能修改代码的原因是 用户模式栈不能访问内核模式栈 ,在执行之前代码都被送去内核了

  • 相关阅读:
    【转】【Linux】linux awk命令详解
    【转】【Linux】Linux 命令行快捷键
    【转】【Linux】sed命令详解
    【转】【Linux】Linux 下zip包的压缩与解压
    【转】【Linux】grep命令详解
    【转】crontab命令 脚本定时运行
    【转】BAT 批处理脚本 教程
    【MySql】脚本备份数据库
    php的json校验json-schema
    phan—php语法静态检查在windows下的配置
  • 原文地址:https://www.cnblogs.com/XiangZiPeng/p/12178158.html
Copyright © 2011-2022 走看看