精华内容
参与话题
问答
  • 计算机理论导引

    2017-12-31 19:50:34
    计算机理论导引,东华大学研究生课程,刘国华。需要的同学请下载
  • 计算机理论基础ppt

    2017-07-26 17:03:00
    计算机理论基础ppt
  • 计算机视觉 ( 计算机理论与算法基础)马颂德编写,内容写到机器视觉实现的理论详细概述。值得一看
  • 计算机理论/进程间通信

    千次阅读 2019-04-20 14:14:45
    进程间通信:   进程间通信(IPC, Inter-Process Communication)是指在不同的进程之间,相互传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)消息队列、信号量、共享存储、socket、streams等… ...

    进程间通信:


      进程间通信(IPC, Inter-Process Communication)是指在不同的进程之间,相互传播或交换信息。IPC的方式通常有管道(包括无名管道和命名管道)消息队列、信号量、共享存储、socket、streams等…
    通过以上所述,进程间的通信分为:本地、远程。

    本地进程间通信:

    本地的程序之间交互:
    从QQ复制一张图片到Wechat
    在这里插入图片描述
    在这里插入图片描述

    远程进程的通信:

    什么是进程?

      进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动进程是系统进行资源分配和调度的一个独立单元。 每个进程都有自己的独立内存空间,不同的进程通过进程间通信来通信。(有一个程序在一堆数据上进行了一堆操作)。

    进程间通信的几种类型

    管道:通常指无名管道,是UNIX系统IPC最古老的形式。
    1、它是半双工的(数据只能在一个方向上流动),具有固定的读端和写端。
    2、它只能用于具有亲缘关系的进程之间通信(也是父子进程或者兄弟进程之间)。
    3、它可以看成是一种特殊的文件,对于它的读写也可以使用普通的readwrite函数。但是它不是普通的文件,并不属于其他任何文件系统,并且只存在于内存当中。 通过系统函数int pipe (int _pipedes[2])进行创建。


    FIFO,命名管道:一种特殊的文件类型
    1、FIFO可以在无关的进程之间交换数据,与无名管道不同。
    2、FIFO有路径名誉之相关联,它以一种特殊的设备文件形式存在于文件系统中。 命名管道,FIFO,是一种特殊的文件类型。
    命名管道由mkfifo函数创建打开用open,FIFO与PIPE(匿名管道)之间唯一的区别在它们创建与打开的方式不同,这些工作完成之后,它们具有相同的语义。


    消息队列:
    消息队列,是消息的链接表,存放在内核中。 一个消息队列由一个表示符:(队列的ID)来标识。
    1、消息队列的面向记录的,其中的消息具有特定的格式以及特定的优先级。
    2、消息队列独立于发送与接收进程,进程终止的时候消息队列及其内容不会被删除。 消息队列可以实现消息的随机查询,消息不一定要以先进先出的次序读取,也可以按消息的类型读取。


    信号量
    信号量(semaphore)与以上IPC结构不同,它是一个计数器。信号量用于实现进程间的互斥与同步,而不是用于存储进程间的通信数据。
    1、信号量用于进程间的同步,若要在进程间传递数据需要结合共享内存。
    2、信号量基于操作系统的PV操作,程序对信号量的操作都是原子操作。
    3、每次对信号量的PV操作不仅仅限于对信号量的+1或者-1 而且可以加减任意的正整数。
    4、支持信号量组。


    共享内存
    共享内存(Shared Memory)指两个或者多个进程共享一个给定的存储区。
    1、共享内存是最快的一种IPC,因为进程是直接对内存进行存取。
    2、因为多个进程可以同时操作,所以需要进行同步。
    3、信号量+共享内存通常结合在一起使用,信号量用来同步对共享内存的访问。

    进程的基本特征:

    动态性
    进程的状态和转换
    在这里插入图片描述
    进程控制块
    进程控制块(Processing Controk Block)也称为进程描述快(Process Descriptor)是操作系统核心中的一种数据结构,主要表示进程状态。在创建进程的时候,首先建立PCB,它伴随进程运行的全过程,直到进程撤销而报销。系统可以利用PCB来控制和管理进程,所以PCB是系统的感知进程存在的唯一标识。

    UNIX系统中的几个进程控制操作:

    • Fork():通过复制调用进程来建立新的进程,是最基本的进程建立过程。
    • exec():包括一系列系统调用,它们是通过用一段新的程序代码覆盖原来的地址空间,实现进程执行代码的转换。
    • wait():提供初级的进程同步操作,能使一个进程等待另外一个进程的结束。
    • exit():用来终止一个进程的执行。

    在这里插入图片描述

    进程和线程之由来?

    操作系统中为什么会出现进程?
    说起进程的由来,我们需要从操作系统的发展历史谈起。

      也许在今天,我们无法想象在很多年以前计算机是什么样子。我们现在可以用计算机来做很多事情:办公、娱乐、上网,但是在计算机刚出现的时候,是为了解决数学计算的问题,因为很多大量的计算通过人力去完成是很耗时间和人力成本的。在最初的时候,计算机只能接受一些特定的指令,用户输入一个指令,计算机就做一个操作。当用户在思考或者输入数据时,计算机就在等待。显然这样效率和很低下,因为很多时候,计算机处于等待用户输入的状态。

      那么能不能把一系列需要操作的指令预先写下来,形成一个清单,然后一次性交给计算机,计算机不断地去读取指令来进行相应的操作?就这样,批处理操作系统诞生了。用户可以将需要执行的多个程序写在磁带上,然后交由计算机去读取并逐个地执行这些程序,并将输出结果写到另一个磁带上。

      虽然批处理操作系统的诞生极大地提高了任务处理的便捷性,但是仍然存在一个很大的问题:

      假如有两个任务A和B,任务A在执行到一半的过程中,需要读取大量的数据输入(I/O操作),而此时CPU只能静静地等待任务A读取完数据才能继续执行,这样就白白浪费了CPU资源。人们于是想,能否在任务A读取数据的过程中,让任务B去执行,当任务A读取完数据之后,让任务B暂停,然后让任务A继续执行?

      但是这样就有一个问题,原来每次都是一个程序在计算机里面运行,也就说内存中始终只有一个程序的运行数据。而如果想要任务A执行I/O操作的时候,让任务B去执行,必然内存中要装入多个程序,那么如何处理呢?多个程序使用的数据如何进行辨别呢?并且当一个程序运行暂停后,后面如何恢复到它之前执行的状态呢?

      这个时候人们就发明了进程,用进程来对应一个程序,每个进程对应一定的内存地址空间,并且只能使用它自己的内存空间,各个进程间互不干扰。并且进程保存了程序每个时刻的运行状态,这样就为进程切换提供了可能。当进程暂时时,它会保存当前进程的状态(比如进程标识、进程的使用的资源等),在下一次重新切换回来时,便根据之前保存的状态进行恢复,然后继续执行。

    这就是并发,能够让操作系统从宏观上看起来同一个时间段有多个任务在执行。换句话说,进程让操作系统的并发成为了可能。

    注意,虽然并发从宏观上看有多个任务在执行,但是事实上,任一个具体的时刻,只有一个任务在占用CPU资源(当然是对于单核CPU来说的)

    为什么会出现多线程?
      在出现了进程之后,操作系统的性能得到了大大的提升。虽然进程的出现解决了操作系统的并发问题,但是人们仍然不满足,人们逐渐对实时性有了要求。因为一个进程在一个时间段内只能做一件事情,如果一个进程有多个子任务,只能逐个地去执行这些子任务。比如对于一个监控系统来说,它不仅要把图像数据显示在画面上,还要与服务端进行通信获取图像数据,还要处理人们的交互操作。如果某一个时刻该系统正在与服务器通信获取图像数据,而用户又在监控系统上点击了某个按钮,那么该系统就要等待获取完图像数据之后才能处理用户的操作,如果获取图像数据需要耗费10s,那么用户就只有一直在等待。显然,对于这样的系统,人们是无法满足的。

      那么可不可以将这些子任务分开执行呢?即在系统获取图像数据的同时,如果用户点击了某个按钮,则会暂停获取图像数据,而先去响应用户的操作(因为用户的操作往往执行时间很短),在处理完用户操作之后,再继续获取图像数据。人们就发明了线程,让一个线程去执行一个子任务,这样一个进程就包括了多个线程,每个线程负责一个独立的子任务,这样在用户点击按钮的时候,就可以暂停获取图像数据的线程,让UI线程响应用户的操作,响应完之后再切换回来,让获取图像的线程得到CPU资源。从而让用户感觉系统是同时在做多件事情的,满足了用户对实时性的要求。

      换句话说,进程让操作系统的并发性成为可能,而线程让进程的内部并发成为可能。但是要注意,一个进程虽然包括多个线程,但是这些线程是共同享有进程占有的资源和地址空间的。进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基本单位。

    以上部分内容来自:http://www.cnblogs.com/dolphin0520/p/3910667.html

    展开全文
  • 计算机理论导引课后答案,word,pdf
  • 计算机理论书籍

    2007-05-14 15:37:00
  • 计算机理论概念要点

    千次阅读 2020-07-02 16:00:55
    指用于人与计算机用于通讯的语言,计算机只懂0与1,人与计算机对话,指令计算机去工作只能用计算机语言翻译给计算机来让计算机“听的懂” 计算机语言发展 – 机器语言(0,1)—>汇编语言 —》

    计算机要点

    • 1.计算机概念

      • 计算机是什么

      电脑 手机 计算器。。。
      计算机是现代一种服务于人类的用于高度计算的机器

      • 计算机由什么组成?
        • 硬件:硬盘 显示器 键盘 显卡。。。 看得见摸的着
        • 软件:浏览器 QQ LOL wegame。。。。 看不见摸不着–》网站,服务器存在
      • 2.计算机语言

        • 计算机语言概念
          指用于人与计算机用于通讯的语言,计算机只懂0与1,人与计算机对话,指令计算机去工作只能用计算机语言翻译给计算机来让计算机“听的懂”

        • 计算机语言发展
          – 机器语言(0,1)—>汇编语言 —》高级计算机语言。。。(面向过程—>面向对象—>面向应用)

        • 转换时机不同

          –编译型语言 例:C语言
        • x(源码) --编译–>y(编译完成后的机器码)

        • 执行速度快,但是跨平台性差

          –解释型语言 例:python
          • x(源码) --解释器–>解释执行
          • 执行速度慢,但是跨平台性好
    • 3.交互方式

      • 交互方式种类

    —命令行的交互方式 —>TUI(Text-based User Interface)接口
    — 图形界面化交互方式GUI
    windows TUI打开方式(windows键 加 R键 输入cmd然后回车)
    cmd

    DOS命令:

    在这里插入图片描述

    • 4.文本文件与字符集

      • 纯文本
      纯文本只能保存单⼀的⽂本内容,⽆法保存内容⽆关的东⻄(例如:txt⽂本⽂档)
      • 富文本
      富⽂本可以保存⽂本以外的东⻄(例如:word文档)
      • 纯⽂本在计算机底层也会转换为⼆进制保存

      • 解码与编码
        • 将字符转换为⼆进制码的过程,我们称之为编码 encode()
        • 将⼆进制码转换成字符的过程,我们称之为解码 decode()
      • 字符集

        ASCII 美国⼈编码 使⽤7位来对美国常⽤的字符进⾏编码 包含128个字符

        ISO-8859-1 欧洲的编码 使⽤8位来编码 包含256个字符

        GBK 中国⼈编码(国标码) dir 列出当前⽬录下的⽂件夹或者⽂件

        Unicode 万国码 包含世界上所有语⾔和字符 编写程序⼀般都会使⽤

        Unicode 编码 Unicode 编码有多种实现 UTF-8 UTF-16 UTF-32
        (utf-8是包含最多的,是日常最多使用的,许多地方默认utf-8)

        • 出现乱码的情况一般也是编码与解码字符集使用不同,调整即可
          例如浏览器出现乱码则在右键菜单中选择编码在其中选择需要的,一般默认自动检测或者utf-8

        • 5.进制与数据

          • 二进制

            满二进一
            计数:0 1

          • 八进制

            满八进一
            计数:0 1 2 3 4 5 6 7

          • 十进制

            满十进一
            计数:0 1 2 3 4 5 6 7 8 9

          • 十六进制

            十六进制引入a b c d e f表示10 11 12 13 14 15
            计数:0 1 2 3 4 5 6 7 8 9 a b c d e f

          • 进制间转换
            • ⼗进制–>⼆进制 原理: 对⼗进制数进⾏除2运算

            • ⼆进制 – > ⼗进制 原理:⼆进制乘以2(次幂)的过程

            (进制越⼤表现形式越短,之所以出现其他进制就是为了更⽅便的表示数据)

          • 数据
          • bit是计算机中最⼩的单位 6

          • byte是我们最⼩的可操作的单位

             8bit = 1byte   (字节) 
            1024byte = 1KB  (千字节) 
            1024KB = 1MB    (兆字节) 
            1024MB = 1GB    (吉字节) 
            1024GB = 1TB    (太字节)
          
    展开全文
  • 详细答案,计算机理论导引第三版答案,Introduction-to-the-Theory-of-Computation-Solutions
  • 计算机系统组成 1、软件。具有特定顺序的数据和指令的集合 2、硬件。组成计算机的物理装置 硬件组成 1、运算器。进行算术运算和逻辑运算。 2、控制器。控制程序执行、处理中断异常。 3、存储器。存储数据。 4、输入...


    计算机系统组成

    1、软件。具有特定顺序的数据和指令的集合
    2、硬件。组成计算机的物理装置

    1. 硬件组成

    1、运算器。进行算术运算和逻辑运算。
    2、控制器。控制程序执行、处理中断异常。
    3、存储器。存储数据。
    4、输入设备。鼠标,键盘等。
    5、输出设备。显示器,音响等。
    其中,运算器和控制器合称中央处理单元(Central Processing Unit,CPU)。存储器可分为内部存储器和外部存储器。输出设备与输入设备合称外部设备(外设)

    1.1 运算器组成

    1、算术逻辑单元(Arithmetic and Logic Unit,ALU)。处理数据,进行算术运算和逻辑运算。
    2、累加寄存器(Accumulator Register, AC)。暂存用于运算的数据和运算得出的结果。
    3、数据缓冲寄存器(Data Register,DR)。暂存指令或数据字,用于CPU与外设、内存的数据中转和操作速度缓冲。
    4、状态条件寄存器(Program Status Word,PSW,程序状态字)。存放运算后得出的各类标志,如进位标志、溢出标志等。

    1.2 控制器组成

    1、指令寄存器(Instruction Register,IR)。暂存指令。计算机执行指令时,先从内存中读取指令至数据缓冲寄存器,之后会送至指令寄存器。
    2、程序计数器(Program Counter, PC)。存放指令在程序中的序号,一般情况是每执行1条语句,计数器值加1(不包括跳转指令)。
    3、地址寄存器(Address Register,AR)。保存内存单元地址。
    4、指令译码器(Instruction Decoder,ID)。识别操作码(1条指令由操作码和地址码注组成),发出相应的控制信号。如识别出指令是加法运算,则控制运算器进行加法操作。

    展开全文
  • 计算机理论基础】计算机是如何做运算的

    万次阅读 多人点赞 2019-07-02 16:56:46
    由低向上的学习计算机是一条比较漫长的道路。但是,得来的知识却是体系化的。而且越到上边,学习的理解的效率是越高的(暂且自我欺骗,毕竟还没达到那高度) 下面就最近研究和学习做一个复盘。以问题出发为脉络。 ...
  • 计算机理论奠基名人

    千次阅读 2010-08-11 01:58:00
    一些计算机理论奠基人的简介
  • 数据的表示及运算 1、数据:数值、文字、声音、图像等信息。 2、数据的表示方法:对数据进行编码,即对基本符号(如二进制中的“0”和“1”)进行不同组合(如“01”代表1,“10”代表2)以表示大量信息。...
  • 计算机理论之端口号

    千次阅读 多人点赞 2018-11-13 08:20:10
    常用端口号   端口号码 / 层 名称 注释 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 ......
  • 计算机理论知识思维导图

    千次阅读 2019-07-09 14:32:27
    操作系统 计算机组成原理
  • Introduction To The Theory Of Computation.pdf 计算机理论导论
  • 计算机理论知识的学习顺序

    千次阅读 2014-11-25 14:46:31
    以我之见应该是: 初步认识(数字电路,数理逻辑,计算机组成原理) 软件知识(数据结构,算法) 高层知识(数理逻辑,可计算性,lamda演算,代数系统)
  • 介绍了计算机的各种硬件和软件知识,并以简单易学的方法,把计算机理论知识与实际应用巧妙结合起来,为读者认识计算机,进一步学习计算机软硬件知识打下坚实基础。 本书多达329道复习题、315道选择题、325道填空题...
  • 高等数学(上下) 线性代数 概率论与数理统计 政治理论 计算机专业基础综合(包括计算机组成原理、数据结构、计算机操作系统、计算机网络)
  • 一、有限状态机 引子 让我们先来看几个简单的概念: ...状态 - 系统的基本数学特征。...给定一个输入集合,根据对输入的接受次序来决定一个输出集合。...有限状态机 - 输入集合和输出集合都是有限的,并只有有限...
  • 通过在网上的搜索现在的IT职业要求,发现企业并不要求理论知识有多高,例如招聘java工程师职位,企业只针对你会不会SSH框架,会不会mysql,oracle之类的,都是一些主流的新技术,抛开了大学计算机理论 现在学什么...
  • 计算机理论面试(一):算法

    千次阅读 2019-08-12 21:46:40
    1、加密算法 参考:... 1)密钥相同的对称算法 以ES结尾:DES、3DES、AES 2)密钥不同的非对称算法 以SA结尾:RSA、DSA ...3)不需要密钥的散列算法 ......
  • 1. 计算机科学分为计算机理论和计算机应用。 计算机基础理论包含以下几部分: 2 1.1. ( 1) 程序理论( 程序逻辑、程序正确性验证、形式开发方法等) 2 1.2. ( 2) 计算理论( 算法设计与分析、复杂性理论、可计算性...
  • 第一章 计算机基础知识点汇总 电子计算机的发展历程 计算机的类型 常用的数制 计算机仍采用二进制位数表示信息的原因 计算机中的数据单位 第二章 计算机系统 计算机系统的构成 冯诺依曼型计算机的结构 中央处理器 ...
  •  发信人: omohe (omo), 信区: Programming标 题: 一些计算机理论在实际生产中的应用——欢迎大家提出修改意见。发信站: 水木社区 (Sat Jul 4 07:37:40 2009), 站内随着工作实践中各方面的积累,最近慢慢地在思考和...
  • 基于神经网络的新一代计算机理论和技术 高汉中著 C2012 序 神经网络抛弃了什么? 复杂的CPU和服务器硬件结构,操作系统和集群虚拟管理,各类中间件,数据库软件等。 一句话概括:云计算中心将洗去个人电脑的...
  • 革命性的计算机理论实践 - RChain技术浅析 5月20日, 作为RChain合作社成员的我,受湖南大学爱康区块链金融研究中心之遥,参加了RChain的首次meetup并发表了 《革命性的计算机理论实践 - RChain技术浅析》的演讲. ...
  • 关于计算机理论课程学习的一些介绍(原创) 转眼大学毕业也快三年了,自己的身份也由学生变成了老师,期间也了解了一些学弟学妹们关 于计算机理论课程学习的困惑,在这里我想对计算机系的理论课程进行一些介绍,希望...
  • 撰文 阿德里安·丘(Adrian Cho) 翻译 丁家琦 ...这几天一直谣传所谓的“复杂理论”(complexity theory)领域...芝加哥大学的数学家与计算机科学家拉斯洛·鲍鲍伊(László Babai)发现了一种数学方法,可以用

空空如也

1 2 3 4 5 ... 20
收藏数 19,007
精华内容 7,602
关键字:

计算机理论