[컴퓨터 시스템]📚

Haein Lee·2022년 10월 6일
0

1.7 운영체제는 하드웨어를 관리한다


운영체제는 하드웨어와 소프트웨어 사이에 위치한 소프트웨어 계층으로 생각할수 있다.

운영체제는 두가지 주요 목적을 가진다.
1) 제멋대로 동작하는 응용프로그램들이 하드웨어를 잣못 사용하는 것을 막기위해
2) 응용프로그램들이 단순하고 균일한 매커니즘을 사용하여 복잡하고 매우 다른 저수준 하드웨어장치들을 조작할 수 있도록 하기 위해

1.7.1 프로세스

프로세스는 실행 중인 프로그램에 대한 운영체제의 추상화다.
대부분의 시스템에서 프로세스를 실행할 cpu의 숫자보다 더 많은 프로세스들이 존재한다.
요즘의 멀티코어 프로세서들은 여러개의 프로그램을 동시에 실행 할 수 있다. 어느쪽이건 프로세서가 프로세서들을 바꿔주는 방식으로 한개의 cpu가 다수의 프로세서를 동시에 실행하는 것처럼 보여준다.

1.7.2 Thread

Thread는 프로그래밍 모델로서 중요성이 더욱 커지고 있는데 데이터의 공유가 더 쉽고 효율적이라는 점 때문이다.

1.7.3 가상메모리

가상메모리는 각 프로세스들이 메인 메모리 전체를 독점적으로 사용하고 있는 것 같은 환상을 제공하는 추상화이다.

프로그램코드와 데이터
힙 Heap
공유 라이브러리
스택 Stack
커널 가상메모리

가상 메모리가 작동하기 위해서는 프로세서가 만들어내는 모든 주소를 하드웨어로 번역하는 등 하드웨어와 운영체제 소프트웨어 간의 복잡한 상호작용이 필요하다.

1.7.4 파일

파일은 더도 덜도 말고 그저 연속된 바이트들이다.
디스크, 키보드, 디스플레이 , 네트워크 까지 포함하는 모든 입출력 장치는 파일로 모델링한다.
시스템의 모든 입출력은 유닉스 I/O라는 시스템 콜들을 이용하여 파일을 읽고 쓰는 형식으로 이루어진다.

1.8 시스템은 네트워크를 사용하여 다른 시스템과 통신한다

1.9 중요한 주제들

시스템이라는 것이 단지 하드웨어 그 이상의 것이라는 점.
그것은 응용프로그램의 실행이라는 궁극의 목적을 달성하기 위해 협력해야 한는 하드웨어와 시스템 소프트웨어가 서로 연결된 것을 말한다.

1.9.1 Amdahl의 법칙

결론적으로는 전체 시스템을 상당히 빠르게 하기 위해서는 전체 시스템의 매우 큰 부분을 개선해야한다.

1.9.2 동시성과 병렬성

스레드 수준 동시성
멀티 프로세싱의 이용은 시스템 성능을 두 가지 방법으로 개선할 수 있다. 첫번째 다수의 태스크를 실행할 때, 동시성을 시뮬할 필요를 줄여준다.
인스트렉션 수준 병렬형
최근의 프로세서들은 훨씬 낮은 수준에서의 추상화로 여러 개의 인스트랙션을 한번에 실행시킬수 있다. 이러한 특성을 인스트랙션 수준 병렬형 이라고 한ㄷ.
보다 빠르게 동작된다.
싱글 인스트랙션, 다중 데이터 병렬성(SIMD)
대게 영상, 소리,동영상 데이터 처리를 위한 응용프로그램 속도를 개선하기 위해 제공된다.

1.9.3 컴퓨터 시스템에서 추상화의 중요성

추상화의 사용은 전산학에서 가장 주요한 개념이다.

profile
멋진 개발자가 될거야 :)

0개의 댓글