본문 바로가기
반응형

전체보기96

Operating Systems(OS) Overview Windows, Mac, Linux 등이 OS라는 것은 알고 있었지만 OS가 정확히 무엇인지에 대해 생각해 본 적은 없었다. 중간고사 이후에는 수업에서 OS에 대한 내용을 다룬다. OS overview에서는 OS란?, OS service와 operation, System Call에 대해 살펴보자. What is an Operating System? fig 1은 전체적인 컴퓨터 시스템을 나타낸 것이다. 확인할 수 있듯이 4개로 나눠볼 수 있다. Users(사용자): 사람, 기계, 다른 컴퓨터 등에 해당한다. users는 computing problems를 해결하길 원한다. Application programs: 컴퓨터 리소스를 사용하는 users의 computing problems를 해결한다. OS: 다양.. 2021. 11. 5.
Linkers and Loaders 이전까지는 어셈블러에 대해 알아보았다. 어셈블러는 어셈블리어를 기계가 이해할 수 있는 기계어(object code)로 변환시키는 역할을 한다고 했다. 이제 그 다음 과정을 위해 사용되는 링커(Linker)와 로더(Loader)에 대해 알아보자. fig 1을 통해 C와 같은 고급 언어 프로그램의 번역 계층을 다시 살펴보자. 번역 과정의 속도를 높이기 위해 일부 단계를 건너뛰거나 결합하기도 하지만 기본적으로 4단계를 따른다. 먼저 어셈블리 언어 프로그램으로 컴파일 어셈블러를 통해 기계어로 된 객체 모듈로 조립된다. 링커는 여러 모듈을 라이브러리 루틴과 결합하여 모든 참조를 확인한다. 로더는 기계어 코드를 프로세서가 실행할 적절한 메모리 위치에 배치한다. 여기서 링커와 로더에 대한 내용은 당연히 생소할 것이다.. 2021. 11. 1.
Greedy Algorithm Design Pattern 1(탐욕 알고리즘) 이번에 알아볼 디자인 패터은 탐욕 알고리즘(GA, Greedy Algorithm)이다. 해당 디자인 패턴은 저번에 알아본 동적 계획법과 마찬가지로 최적화문제(max/min)를 해결하는데 쓰인다. 즉 문제가 최적 부분 구조를 가지고 있어야 한다고 했었다. 이에 대해 다시 짚고 넘어가자면 origin program의 최적해(solution)가 부분 문제의 최적해들로써 구성되어야, 그 문제가 최적 부분 구조를 가졌다고 할 수 있는 것이다. 이전 글의 예시들을 다시 본다면 이해할 수 있을 것이다. 계속하자면, GA의 설계 전략은 최적해를 얻을 때까지 일련의 절차를 따르는데, 이때 현재 단계의 action에 따른 일련의 과거/미래 단계의 action의 잠재적 단점은 고려하지 않는다(\(A_{1} \rightarr.. 2021. 10. 19.
Assemblers (4) 저번 글에서 기계 독립적인 어셈블러의 특징 5개 중 4개를 다뤄봤다. 이제 Control Section이라는 한가지 특징이 남았는데 다른 특징들보다 내용이 많아서 이렇게 따로 다루게 됐다. 이전 특징들에 비해 생각할 부분들이 많을 것 같다. 그리고 뒤에서는 어셈블러의 Design Option에 대해서도 알아보자. Control Section Control Section(CS, 제어 섹션)은 assembly 이후의 프로그램 일부인데, 각각이 정체성을 유지한다. 각 CS는 다른 섹션과 독립적으로 로드되거나 재배치 될 수 있다. 프로그램의 서브루틴이나 기타 논리적 하위 부문에 서로 다른 제어 섹션이 사용된다. 프로그래머는 각 CS를 개별적으로 조립, 로드 및 조작을 할 수 있다. 그 결과 발생하는 유연함은 제.. 2021. 10. 15.
반응형