반응형

42

운영체제 Ch02_'Operating-System Structure-2'

2.5 링커와 로더 일반적으로 프로그램은 디스크에 이진 실행파일(a.out or prog.exe)로 존재 CPU에서 실행하려면 프로그램을 메모리로 가져와 프로세스 형태로 배치되어야 한다. 소스파일은 임의의 물리 메모리 위치에 적재되도록 설계된 오브젝트 파일로 컴파일 된다.(재배치가능오브젝트파일) 다음으로 링커는 이러한 재배치 가능 오브젝트 파일을 하나의 이진 실행 파일로 결합한다. 링킹 단계에서 표준 또는 라이브러리와 같은 다른 오브젝트 파일 또는 라이브러리도 포함될 수 있다. 로더는 이진 실행 파일을 메모리에 적재하는 데 사용되며, CPU에서 실행할 수 있는 상태가 된다. 즉 링커와 로더의 관련된 활동은 '재배치'로, 프로그램에 최종 주소를 할당하고 코드와 데이터를 해당 주소와 일치한다. 링커에서 추가..

책/운영체제 2021.01.07

컴퓨터 구조 Ch04_"The Processor-4"

4.6 파이프라인 데이터 패스 및 제어 1. IF(Instruction Fetch) : 명령어 인출 2. ID(Instruction Decode) : 명령어 해독 및 레지스터 파일 읽기 3. EX(Execute) : 실행 또는 주소 계산 4. MEM(Memory Access) : 데이터 메모리 접근 5. WB(Write Back) : 쓰기 명령어와 데이터는 실행되면서 5단계를 왼쪽에서 오른쪽으로 움직여 간다. 하지만 2개의 예외가 존재한다. 쓰기단계 : 이 단계에서는 결과를 데이터 패스의중앙에 있는 레지스터 파일에다 쓴다 PC의 다음값 선정 : 증가된 PC 값과 MEM 단계의 분기 주소중 하나를 고른다. 파이프라인을 사용한다면 각 단계가 진행될때마다 PC의 값은 계속 변할 것이다. 따라서 단계 사이마다 ..

컴퓨터 구조 Ch04_"The Processor-3"

4.5 파이프라이닝에 대한 개관 파이프라이닝(Pipelining)은 여러 명령어가 중첩되어 실행되는 구현 기술이다. 오늘날에서는 보편적 기술이다. 예를들어 파이프라인되지 않는 세탁 방법을 설명하면 1. 세탁기에 한 묶음의 옷을 넣는다. 2. 세탁기가 종료되면 젖은 옷을 건조기에 넣는다. 3. 건조기가 종료되면 건조된 옷을 탁자 위에 놓고 정리한다. 4. 정리가 종료되면 같은 방 친구에게 옷을 넣어 달라고 부탁한다. 하지만 위 그림의 아랫 부분을 보는바와 같이 파이프라인 방법은 훨씬 시간이 적게 걸린다. 단계(stage)가 종료되면 해당 단계의 자원이 할당 해제되기 때문에 사용가능함을 최대로 이용하는 것이다. 각 단계를 위한 별도의 자원이 있는 한 작업들을 파이프라인화 할 수 있다. 파이프라인의 역설적인 ..

컴퓨터 구조 Ch04_"The Processor-2"

4.4 단순한 구현 4.3 의 데이터패스에 단순한 제어기능을 추가하여 단순한 구현을 만들고자 한다. LDUR, STUR, CBZ, ADD, SUB, AND, ORR 을 포함한 LEGv8의 부분집합을 구현한다. ALU 제어 LDUR, STUR 경우에는 메모리 주소를 계산하기 위한 덧셈용으로 ALU를 사용 R-type 명령어 경우에는 명령어 비트 11비트 opcode 필드값에 따라서 4가지 연산(AND, OR, SUB, ADD)중 하나를 수행 CBZ 명령어의 경우 ALU는 레지스터 입력값을 그냥 통과시킨다. 명령어의 opcode 필드와 ALUOp라 불리는 2비트 제어필드를 입력으로 ALU 제어 입력을 발생시킨다. ALUOp 가 10 일때에는 opcode 값이 ALU 제어 입력을 결정하는데 쓰인다. 이러한 제..

컴퓨터 구조 Ch04_"The Processor-1"

4.1 서론 프로세서를 구현하는 데 사용하는 원리와 기법들에 대한 설명 LEGv8 명령어 집합 핵심 부분의 구현을 설계 LDUR(lw), STUR(sw), ADD, SUB, AND, ORR, CBZ, B 모든 명령어의 첫 두단계는 다음과 같이 동일하다. 1. 프로그램 카운터(PC)를 프로그램이 저장되어 있는 메모리에 보내어 메모리로부터 명령어를 가져온다. 2. 읽은 레지스터를 선택하는 명령어 필드를 사용하여 하나 또는 두 개의 레지스터를 읽는다. LDUR, CBZ 명령어는 하나만 읽으면 되지만 대부분의 다른 명령어는 레지스터 두 개를 읽는다. PC -> Instruction Memory, Fetch Instruction Register Numbers -> Register File, Read Registe..

운영체제 Ch02_'Operating-System Structure-1'

Chapter 2 운영체제 구조 2.1 운영체제 서비스 운영체제는 프로그램 실행환경을 제공, 프로그램과 그 프로그램의 사용자에게 특정 서비스를 제공한다. OS Service for user support User Interface : 사용자 인터페이스 (CLI, GUI, Batch) Program Execution : 프로그램을 메모리에 적재해 실행할 수 있다. 정상, 비정상 실행 종료 가능 I/O Operation : 실행 중인 프로그램의 입출력 요구, 사용자들은 입출력 장치를 직접 제어할 수 없다. File-system Manipulation : 권한을 확인하여 파일 read/write/create/delete/search/list 를 수행가능하다. Communications : 프로세스간 통신, 네..

책/운영체제 2021.01.03

운영체제 Ch01_'Introduction'

Chapter 1 서론 1.1 운영체제가 할일 컴퓨터 하드웨어를 관리하는 소프트웨어 응용 프로그램을 위한 기반을 제공 컴퓨터 하드웨어와 사용자 사이에서 중재자 역할 컴퓨터의 시스템의 구성요소 하드웨어, 운영체제, 응용 프로그램, 사용자 관점별 운영체제 사용자 관점 : 사용되는 인터페이스에 따라 달라진다. PC에서는 사용의 용이성에 초점, 자원의 이용에는 신경쓰지 않음 워크스테이션에서는 사용의 용이성과 자원활용, 휴대용 컴퓨터에서는 사용의 용이성, 자원절약 시스템 관점 : 하드웨어와 가장밀접하게 연관된 프로그램, 자원 할당자(CPU시간, 메모리공간, 파일저장), 제어프로그램(프로그램의 실행을 관리, 오용 방지)으로 인식 1.2 컴퓨터 시스템의 구성 현대의 시스템에는 CPU와 구성요소와 공유 메모리 사이의 ..

책/운영체제 2020.12.18

컴퓨터 구조 Ch02_"Language of the Computer-2"

2.6 논리연산 명령어 워드 전체가 아닌 개개 비트에 대한 연산을 논리연산이라 칭한다. Shift 연산 자리이동 연산, 더블워드 내의 모든 비트를 왼쪽 또는 오른쪽으로 이동시키고, 이동후 빈자리는 0으로 채운다. Shift left LSR Bit AND & AND, ANDI '' OR \ OR, ORI '' NOT ~ EOR,EORI ex) 000.... 00001001 (2) -> LSL 4번 >000..... 10010000(2) R-type 명령어에서 shamt 의 뜻이 shift mount를 나타낸다. ex)LSL X11, X19 #4 // reg X11 = reg X9

컴퓨터 구조 Ch02_"Language of the Computer-1"

Chapter 2. 명령어: 컴퓨터 언어 2.1 서론 명령어 집합 하드웨어의 언어를 명령어라 칭하며, 이들의 집합을 명령어 집합이라 부른다. 설명에 사용될 명령어 집합은 ARMv8이며, 부분 집합을 설명 할 때에는 LEGv8 용어를 사용하겠다. Chapter 2 에서는 명령어의 표현 방식을 배우고 이를 이해한다면 내장 프로그램 개념을 이해할 수 있다. 2.2 하드웨어 연산 LEGv8 산술 명령어는 반드시 한 종류의 연산만 지시하며, 항상 변수 세개를 갖는 형식이다. LEGv8 어셈블리언어 예시 ADD a, b, c ADD a, a, d ADD a, a, e // b, c, d, e 의 합을 a에 저장하는 예시 설계원칙 1: 간단하기 위해서는 규칙적인 것이 좋다. 연산의 피연산자(operand)는 연산될 ..

반응형