본문 바로가기
반응형

분류 전체보기106

Chapter 05. 스택(Stack) 꼭 알아둬야 할 자료 구조: 스택 (Stack) 데이터를 제한적으로 접근할 수 있는 구조 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 큐: FIFO 정책 스택: LIFO 정책 1. 스택 구조 스택은 LIFO(Last In, Fisrt Out) 또는 FILO(First In, Last Out) 데이터 관리 방식을 따름 LIFO: 마지막에 넣은 데이터를 가장 먼저 추출하는 데이터 관리 정책 FILO: 처음에 넣은 데이터를 가장 마지막에 추출하는 데이터 관리 정책 대표적인 스택의 활용 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 주요 기능 push(): 데이터를 스택에 넣기 pop(): 데이터를 스택에서 꺼내기 Visualgo 사이트에서 시연.. 2020. 7. 20.
Chapter 04. 큐(Queue) 대표적인 데이터 구조: 큐 (Queue) 1. 큐 구조 줄을 서는 행위와 유사 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에 입장하는 것과 동일 FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식으로 스택과 꺼내는 순서가 반대 엑셀로 이해해보기 2. 알아둘 용어 Enqueue: 큐에 데이터를 넣는 기능 Dequeue: 큐에서 데이터를 꺼내는 기능 Visualgo 사이트에서 시연해보며 이해하기 (enqueue/dequeue만 클릭해보며): https://visualgo.net/en/list 3. 파이썬 queue 라이브러리 활용해서 큐 자료 구조 사용하기 * queue 라이브러리에는 다양한 큐.. 2020. 7. 17.
Chapter 03. 배열 꼭 알아둬야 할 자료 구조: 배열 (Array) 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조 * 인덱스(index): String처럼 연관된 데이터에 대해서 직접적으로 접근이 가능하도록, 번호를 할당. 이를 이용해서 연결된 배열의 개별 요소에 직접적으로 접근을 가능하도록 한다. 파이썬에서는 리스트 타입이 배열 기능을 제공함 1. 배열은 왜 필요할까? 같은 종류의 데이터를 효율적으로 관리하기 위해 사용 같은 종류의 데이터를 순차적으로 저장 장점: 빠른 접근 가능 (Index를 활용.) 첫 데이터의 위치에서 상대적인 위치로 데이터 접근(인덱스 번호로 접근) * 연관된 배열의 시작 주소를 알아야 한다. 단점: 데이터 추가/삭제의 어려움 미리 배열의 최대 길이를 지정해야 함. * 기존.. 2020. 7. 14.
시스템 소프트웨어 과제#8 EXERCISES Section 5.1 Problem 1 ~ Problem 4 5.1.1 그림 5.2의 문법에 따라 다음 들에 대한 파스 트리를 그리시오. a) ALPHA 5.1.2 그림 5.2의 문법에 따라 다음 들에 대한 파스 트리를 그리시오. a) ALPHA + BETA b) ALPHA - BETA * GAMMA c) ALPHA DIV (BETA + GAMMA) - DELTA 5.1.3 그림 5.2의 문법에서 규칙 10과 11이 다음과 같이 수정되었다고 가정하자. ::= | * | DIV ::= | + | - 수정된 문법에 따라 문제 2의 들에 대한 파스 트리를 그리시오. 문법의 수정이 산술 연산자의 우선순위의 어떤 영향을 끼치는가? answer : a) ALPHA + BETA b) ALPHA - .. 2020. 7. 14.
시스템 소프트웨어 과제#7 EXERCISES Section 4.1 Problem 1: Apply the algorithm in Fig. 4.5 to process the source program in Fig. 4.1; the results should be the same as shown in Fig. 4.2. (문제 1 : 그림 4.1의 소스 프로그램을 처리하기 위해 그림 4.5의 알고리즘을 적용하십시오. 결과는 그림 4.2와 같아야합니다.) 그림 4.5의 알고리즘을 적용 시 EXPAND보다 'MACRO'를 먼저 찾았으므로, DEFINE를 먼저 적용하게 된다. 그리고 MACRO의 레벨1로 정의를 끝낸 뒤 definition의 끝의 저장을 한다. 그리고 EXPAND, GETLINE 순으로 프로그램을 실행하여 그림 4.2와 결과가.. 2020. 7. 14.
시스템 소프트웨어 과제#6 EXERCISES Section 3.1 Problem 3: What would be the advantages and disadvantages of writing a loader using a high-level programming language? What problems might you encounter and how might these be solved? (문제점 3 : 고급 프로그래밍 언어를 사용하여 로더를 작성할 때의 장단점은 무엇입니까? 어떤 문제가 발생할 수 있으며 어떻게 해결할 수 있습니까?) 먼저 로더(Loader)란, 외부 기억 장치로부터 주 기억 장치로 옮기기 위하여 메모리 할당 및 연결, 재배치, 적재를 담당하는 서비스 프로그램이다.(instruction과 data를 특정 메모.. 2020. 7. 14.
시스템 소프트웨어 과제#5 EXERCISES Section 8.2 Do Problem 1: Write a complete set of input specifications for a SIC assembler, as described in Section 2.1. You may make any decisions about requirements that you feel appropriate. (2.1 절에서 설명한대로 SIC 어셈블러에 대한 전체 입력 사양 세트를 작성하십시오. 적절하다고 생각되는 요구 사항에 대한 결정을 내릴 수 있습니다.) 입력명세 1. 원리 프로그램 문장의 레이블은 문장의 첫 번째 열에서 시작해야 한다. 연산자 필드는 레이블 필드와 한 개 이상의 공백으로 분리된다. 레이블이 없는 경우에 연산자 필드는 첫 번째 열.. 2020. 7. 14.
시스템 소프트웨어 과제#4 1) 교과서 Chapter 2. Assemblers의 Exercises Section 2.3의 문제 1번부터 문제 5번까지 해답 구하시오. 문제1. 리터럴을 처리하기위해 그림2.4.의 알고리즘을 수정하시오. 문제2. 그림2.9의 프로그램의 135행과 145행에서 리터럴이 사용될 수 있을까? 여기에서 리터럴은 사용하지 않는 것이 왜 좋은가? 풀이 : 135행 ~ 145행 부분은 읽어 들여온 레지스터 값을 저장된 갑의 INPUT와 RLOOP에 있는 값이 같다면 RD m을 이용해 값을 비교하는 것이기 과정이며, 해당하는 값이 상수가 아니라 계속 변하기 때문에 리터럴은 사용하지 않는 것이 좋다. 문제3. 문자 표기에 약간의 확장으로 리터럴 피연산자로서 갑 3의 한 워드를 지시하기위해 LDA =W'3' 같이 그림.. 2020. 7. 14.
시스템 소프트웨어 과제#3 P.144 1) 교과서 Chapter 2. Assemblers의 Exercises Section 2.1의 문제 2번(교과서 111쪽)과 문제 4번(교과서 112쪽)에 대한 해답 구하시오. 2. 다음 SIC 원시 프로그램에 대해 그림 2.4의 알고리즘을 이용하여 어셈블해 보아라. 2. Apply the algorithm described in Fig. 2.4 to assemble the following SIC source program. SUM START 4000 FIRST LDX ZERO LDA ZERO LOOP ADD TABLE.X TIX COUNT JLT LOOP STA TOTAL RSUB TABLE RESW 2000 COUNT RESW 1 ZERO WORD 0 TOTAL RESW 1 END FIR.. 2020. 7. 14.
시스템 소프트웨어 과제#2 The R.o.K. Census provides information about the current R.o.K. population as well as approximate rates of change. Using those rates and the current R.o.K. population, write a SIC assembly program to calculate the R.o.K. population in exactly one week (7days). Your assembly program should output the result of your calculations. ( R.o.K. 인구 조사는 현재 R.o.K에 대한 정보를 제공합니다. 대략적인 변화율뿐만 아니라 인구. 이 요금과 현재 .. 2020. 7. 14.
728x90
반응형