-
[컴퓨터 시스템] 1일차교육 2019. 10. 7. 22:38
- 아래 내용은 '컴퓨터 시스템(3판)' 책을 바탕으로 몰랐던 내용이나, 알고 있더라도 머릿속에 좀 더 각인시키면 좋을 것 같은 내용 위주로 기록했다.
- 자세한 정리보단, 핵심만 남기는 것을 선호하는 편이라 친절하지 않을 수 있다.
- 깊이 있는 학습을 원한다면 별도로 책(컴퓨터 시스템(3판))을 구입하여 학습하길 권한다.
- 스스로 언제든 틀릴 수 있다는 사실을 인식하고 있기 때문에, 피드백은 언제나 환영한다.
- 목표는 기본기 튼튼한 프로그래머가 되기 위함이다.
Copy-on-write
- 하나의 Resource를 공유하고 있는 프로세스 중 하나가 공유 Resource에다가 임의로 수정(Write)을 가할 때 그때 복사본이 만들어진다.
- Optimization 기술 중 하나
- OS에서는 Copy-on-write가 보통 fork( )를 수행할 때 적용된다.
- 한정된 Resource를 효과적으로 사용하려다 보니 등장한 개념
프로세스 종류
- 크게 CPU bound process와 I/O bound Process로 나눌 수 있음
- CPU burst가 큰 프로세스를 CPU bound process (CPU 작업이 많은 프로세스)
- I/O burst가 큰 프로세스를 I/O bound process (I/O 작업이 많은 프로세스)
* CPU Bound, I/O Bound, Memory Bound, Cache bound
버스
- 시스템 내를 관통하는 전기적 배선
- 버스는 일반적으로 word(32비트 컴퓨터 : 4바이트 /64비트 컴퓨터 : 8바이트) 단위로 데이터를 전송하도록 설계
Principle of Locality
- 캐시의 Hit rate를 극대화하기 위해 지역성(locality)의 원리를 사용
- 지역성의 전제조건은 프로그램은 모든 코드나 데이터를 균등하게 access 하지 않는다를 기본으로 함
- 시간 지역성(Temporal locality)과 공간 지역성(Spatial locality) 이 있음
- 시간 지역성은 최근 접근한 데이터에 다시 접근하는 경향이 있음
- 공간 지역성은 최근 접근한 데이터의 주변 공간에 다시 접근하는 경향이 있음
- 프로세스 실행 중에 접근한 데이터의 접근 시점과 메모리 주소를 표시한 아래 그림은 시간 지역성과 공간 지역성의 특성을 잘 보여준다.
static linking
- 실행 파일을 만들 때 라이브러리를 같이 포함시켜서 '. exe' 파일을 만드는 것 (링커 역할)
- 실행 파일에 라이브러리 코드가 포함되기 때문에 크기가 큼
- 독립된 실행 파일
- 컴파일이 끝나면 라이브러리 파일 없이도 실행 가능
dynamic linking
- 실행 파일을 만들 때 라이브러리를 포함시키지 않고, 실행 중에 라이브러리를 호출하는 방법
- 실행 파일에는 호출할 라이브러리의 위치정보만 포함돼 있어서 크기가 작음
- 실행 파일은 라이브러리에 대한 위치정보만 가지고 있을 뿐 실제 코드를 가지고 있지는 않아서 프로그램 실행 시 라이브러리(DLL)이 꼭 있어야 한다
참고
Operating System Concepts / 홍릉과학출판사
컴퓨터 시스템(3판)
'교육' 카테고리의 다른 글
[컴퓨터 시스템] 2일차 (0) 2019.10.15 [Node.js] 13일차 (0) 2019.10.09 [Node.js] 11일차 (1) 2019.09.27 [Node.js] 10일차 (0) 2019.09.25 [Node.js] 8일차 (2) 2019.09.18