시스템프로그래밍 01-01

TonyHan·2021년 3월 4일
0

System Shell
Assembler
Linkin loader


고급 UNIX 프로그래밍

중간 30
기말 30
프젝 40

System Software vs Application Software

System Software : 컴퓨터의 여러가지 기능을 보조해주는 소프트웨어(machine-dependent)

  • Compiler : high-level language -> assembly code.
  • Assembler : assembly language -> machine code.
  • Loader : Place object file on the memory.
  • Linker : Combine object files into a single executable image.
  • Text Editor : Help users to create files.
  • Operating System : Manage all the hardware and software.


application program은 특정한 문제를 풀기 위해서 사용
system program은 컴퓨터를 작동시키는데 사용

그림 왼쪽에 적히어 있는 것이 대표적인 System program들이고 오른쪽에 적히어 있는 것이 System program들의 기능이다.

그리고 시스템 소프트웨어가 하드웨어에 의존적이라는 것은 하드웨어를 사용하기 위해Instruction Set을 구성하게 되는데 Instruction Set에 따라서 하드웨어가 구현이 되게 된다.


Machine dependent

  • instruction set(명령어 구조), instruction format(명령어 구성체계), addressing mode(어떻게 명령어에 접근), assembly language(기계에 의존적인 언어)

Machine independent

  • General design logic(프로그램 구성 로직)/strategy, two pass assembler

어떻게 시스템 소프트웨어를 개발할 것인가 (SIC : 가상의 컴퓨터, SIC/XE : SIC에 추가 기능을 추가한 버전->SIC는 SIC/XE에서 구동가능 SIC/XE는 SIC에서 구동불가능)

SIC Machine Structure

  • Memory
    1 byte : 8 bits
    1 word : 3 bytes(24 bits)
    모든 주소는 바이트 주소들이다.
    word의 주소는 가장 낮은 바이트의 주소로 접속하게 된다.

SIC머신은 총 2^15 (32KB) 바이트의 메모리가 존재

SIC머신의 Instruction Format은 연산자(8)+인덱스 비트(1)+주소(15) 그래서 주소 15비트의 자릿수의 숫자로 메모리에 접근한다면 2^15개의(32,768개) 메모리가 존재

  • Registers
    5개의 레지스터로 구성
    각 레지스터는 24bit의 길이를 가지고 있다.


SIC Machine의 레지스터는 위와 같이 구성된다.
A : Accumulator은 산술연산에서 사용된다.
X : Index registers은 메모리를 나타내는 방식에 사용
L : Linkage registerd은 Subroutine(JSUB)로 점프를 하는 순간엔 return address를 저장하는 역활
PC : Program counter은 연산자와 주소를 이용해서 연산수행시 그 다음 instruction의 주소를 저장하고 있다.
SW : Status word은 Condition Code(CC : 참인지 거짓인지에 대한 정보) 포함하여 다양한 정보를 내포

  • Data Format
    Integer : 24bit binary numbers, 음수를 표현하기 위해 2의 보수를 사용
    Character : 8bit의 ASCII 코드
    Float는 SIC에 없음
profile
신촌거지출신개발자(시리즈 부분에 목차가 나옵니다.)

0개의 댓글