본문 바로가기
반응형

Computer Science/시스템 프로그래밍12

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.
Assemblers (4) 저번 글에서 기계 독립적인 어셈블러의 특징 5개 중 4개를 다뤄봤다. 이제 Control Section이라는 한가지 특징이 남았는데 다른 특징들보다 내용이 많아서 이렇게 따로 다루게 됐다. 이전 특징들에 비해 생각할 부분들이 많을 것 같다. 그리고 뒤에서는 어셈블러의 Design Option에 대해서도 알아보자. Control Section Control Section(CS, 제어 섹션)은 assembly 이후의 프로그램 일부인데, 각각이 정체성을 유지한다. 각 CS는 다른 섹션과 독립적으로 로드되거나 재배치 될 수 있다. 프로그램의 서브루틴이나 기타 논리적 하위 부문에 서로 다른 제어 섹션이 사용된다. 프로그래머는 각 CS를 개별적으로 조립, 로드 및 조작을 할 수 있다. 그 결과 발생하는 유연함은 제.. 2021. 10. 15.
Assemblers (3) 이전에 어셈블러는 기계에 따라 내부의 구현이 달라질 수 있다고 했다. 그럼에도 어셈블러는 기계 아키텍처와 관련되지 않은 독립적인 몇 가지 특징들을 가진다. 이러한 기능의 유무는 기계 아키텍처보다 프로그래머의 편의성 및 SW 환경과 같은 문제와 더 밀접하게 관련되어 있다. 여기서는 이에 대한 5가지 특징들에 대해 살펴보고자 한다. Literal Symbol definitions Expressions Program Blocks Control sections 위와 같은 특징이 적용된 코드를 살펴보자. 프로그램의 내용은 이전과 동일하다. 이제 위에서 언급한 특징들에 대해 자세히 살펴보면서 위의 변화된 점들을 이해해보자. Literals 프로그래머가 상수 operand(피연산자)의 값을 instruction의 일.. 2021. 10. 15.
반응형