ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [컴퓨터 시스템] 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

    댓글

Designed by Tistory.