Fascination
article thumbnail
[컴퓨터구조/운영체제] 운영체제 설명 - 여러 프로그램이 동시에 실행되는 원리

[컴퓨터구조/운영체제] 운영체제 설명 - 여러 프로그램이 동시에 실행되는 원리 인프런/기술노트 - 컴퓨터 구조부터 클라우드 빅데이터까지 / 진로 고민, 취업 상담 # 운영체제 CPU 연산을 하며, 명령어를 처리한다 중앙처리장치 Cache Memory CPU 내부에 존재하기도하고 아니기도하다 다음 연산을 위해 프로세스의 일부가 들어간다 프로그램 N개가 동시에 실행될 때 각 프로그램의 일부 명령어의 집합 및 데이터가 메인메모리로 올라간다 메인 메모리에 올라온 명령어 집합 및 데이터는 또 다시 캐시 메모리로 올라간다 캐시 메모리에 저장된 명령어 집합 및 데이터 중 하나를 가지고 CPU는 연산을 진행한다 single core 기준으로 CPU는 한 번에 한 개만 처리가 가능하다 동시에 여러 프로그램을 실행시키기 ..

article thumbnail
[컴퓨터구조/운영체제] CPU속도가 Hz(헤르쯔)인 진짜 이유 (feat. 컴퓨터 구조)

[컴퓨터구조/운영체제] CPU속도가 Hz(헤르쯔)인 진짜 이유 (feat. 컴퓨터 구조) 인프런/기술노트 - 컴퓨터 구조부터 클라우드 빅데이터까지 / 진로 고민, 취업 상담 # CPU 중앙처리장치 속도와 연관됨 → 속도와 연관되며 얼마나 빠르게 처리하는가?가 중요하다 # Hz 주파수의 단위 파형을 그리면서 가는 것이다 1초에 몇 번 진동하는가의 개념 ex) 1초에 10번 진동하는 것을 10Hz라고 하다 초당 많이 진동할수록 빠르다는 개념과 연관된다 # 왜 Hz가 컴퓨터에서 속도가 되었는가? CPU가 얼마나 빠르게 명령어 및 데이터를 불러와 연산을 수행하는가? 속도는 진동과 연관이 있으며, clock이라는 개념이 등장 # clock 진동으로 치는 것으로 전기 신호와 관련이 있다 clock에 따라 데이터들이..

article thumbnail
[컴퓨터구조/운영체제] 컴퓨터구조 운영체제 클라우드 30분만에 이해하기

[컴퓨터구조/운영체제] 컴퓨터구조 운영체제 클라우드 30분만에 이해하기 인프런/기술노트 - 컴퓨터 구조부터 클라우드 빅데이터까지 / 진로 고민, 취업 상담 # 폰노이만 구조 하드웨어: 어떻게 동작된다의 의미를 내포 OS: 하드웨어의 실행에 관여 # OS 파일이 모여 프로그램을 구성하게됨 프로세스: 프로그램이 실행되는 것 프로세서: 프로그램이 동작되는데 사용되게 하는 것, 즉 CPU를 의미함 OS는 프로세스를 관리하는 역할을 한다 OS가 잘 운영된다의 개념? CPU는 메모리 공간의 한계로 파일 전체를 수행하지 못하며 캐시메모리는 디스크에 비해 저장공간이 한없이 부족하다 디스크는 CPU에 비해 저렴하다 따라서 운영체제는 프로세스의 우선 순위를 결정하여 프로그램을 효율적으로 사용할 수 있게 한다 CPU는 사실..

article thumbnail
[컴퓨터구조/운영체제] 컴퓨터 전공 수업 10분으로 압축 (컴퓨터구조 + 운영체제)

[컴퓨터구조/운영체제] 컴퓨터 전공 수업 10분으로 압축 (컴퓨터구조 + 운영체제) 인프런/기술노트 - 컴퓨터 구조부터 클라우드 빅데이터까지 / 진로 고민, 취업 상담 # 폰노이만 구조 CPU ↔ Memory ↔ DISK 하드웨어(CPU, Memory, Disk) ↔ I/O # CPU ALU + 레지스터 ALU: 수학적 산술 연산을 하는 것이 있음 레지스터: 메모리에 있는 명령들이 올라와서 계산을 통해 연산을 하게 됨 캐시메모리: 임시저장공간 # Memory 저장공간 Memory에 컴퓨터 내 프로그램을 모두 올릴 수 없다 어떤 프로세스에 어떤 데이터를 적재시킬지가 관리 대상 → 메모리 관리 # DISK 저장소 파일에 얼마나 빠르게 접근할 것인가 → 디스크 관리 # I/O 키보드 마우스 모니터와 같은 입출..

article thumbnail
[OS] Chapter 09. 가상 메모리의 관리

[OS] Chapter 09. 가상 메모리의 관리 누워서보는 운영체제 이야기 - 김주균 교수님 # 9.1 하드웨어의 사용 ▶ 가상 메모리를 효율적으로 운영하기 위해서는 먼저 사상에 걸리는 시간을 최소화해야 함 TLB라는 추가의 하드웨어를 사용하는 방법 페이지 테이블을 캐시와 같은 좀 더 빠른 기억 장치에 저장하는 방법 페이지 테이블의 일부분을 저장할 수 있는 다수의 레지스터를 사용하는 방법 ▶ 페이지를 효율적으로 관리하기 위해 참조비트(Reference Bit)와 갱신 비트(Modified Bit)등을 두기도 함 참조 비트: 해당 페이지가 참조되었는가를 나타내는 비트 갱신 비트: 페이지의 변경 여부를 나타내는 비트 # 9.2 관리를 위한 다양한 기법들 * 메모리 관리 Fetch Placement Repl..

article thumbnail
[OS] Chapter 08. 가상 메모리

[OS] Chapter 08. 가상 메모리 누워서 보는 운영체제 이야기 - 김주균 교수님 ▶ 시스템은 사용자 프로그램을 메모리의 어디에, 어떻게 넣을까로부터 메모리 수용 공간까지 알아서 해결해줌 운영체제는 주어진 메모리의 크기 아래서 프로그램을 작은 조각으로 나누어 그 중에 일부분만을 메모리에 적재하되, 그것도 적재가 가능한 곳으로 흩어(비연속적) 넣어줌으로써, 사용자는 메모리에 대한 고민으로부터 벗어날 수 있음 사용자들은 자신의 프로그램이 아무리 크더라도 아무 문제없이 메모리에 적재되어 실행된다는 확신을 가지게 됨 사실은 제한적인 크기지만 엄청나게 큰 메모리가 있는 것처럼 여겨지기 때문에 가상(Virtual) 메모리라고 부름 # 8.1 가상 메모리(Virtual Vemory)를 위해서는 ▶ 모든 프로그..

article thumbnail
[OS] Chapter 07. 메모리 관리

[OS] Chapter 07. 메모리 관리 누워서 보는 운영체제 이야기 - 김주균 교수님 ▶ 메모리를 잘 관리하면 프로그램의 실행 성능을 높여 CPU의 효율적인 사용과 사용자에게의 빠른 응답성을 가능하게 하므로, 운영체제의 효과적인 메모리 관리는 당연히 요구되는 일 메모리: information을 저장할 수 있는 모든 object 넓은 의미에서의 메모리 - 캐시, 메인 메모리, 디스크(PC에서의 하드 역할을 더 큰 시스템에서 하는 것) 등 좁은 의미에서의 메모리 - 메인 메모리 7장에서는 좁은 의미의 메모리. 즉, 메인 메모리에 대해 다룰 것임 ▶ 메모리의 구성 방식을 알아보고, 그 다음 주어진 구성과 연관하여 시스템의 성능을 고려한 관리 기법들을 차례로 알아볼 것 ▶ 프로그램과 프로세스라는 말은 특별한..

article thumbnail
[OS] Chapter 06. 교착 상태(Deadlock)

Chapter 06. 교착 상태(Deadlock) 누워서 보는 운영체제 이야기 - 김주균 교수님 방학 때 병팔이와 동생은 각자 강아지를 한 마리씩 키우기로 하고 우선 강아지 집을 만들기로 하였다. 창고에 있는 여러 가지 크기의 합판과 망치, 톱을 준비하고 나서 병팔이는 적당한 합판들로 망치를 가지고 지붕부터 만들기 시작했다. 동생은 망치를 이미 형이 쓰고 있어 톱을 가지고 합판들을 적당한 크기로 자르기 시작했다. 여기서 몇 가지 가정을 해보자. 이 형제는 양보라는 미덕을 모르며 융통성 또한 아예 없어서 하기로 했던 일을 중간에 상황에 따라 변경하지도 않는다. 물론 톱과 망치는 하나씩밖에 없다. 약간의 작업 후 병팔이는 톱이 필요해졌다. 그러나 동생은 사용 중인 톱을 줄 리가 없다. 톱으로 해야 할 일만 ..

article thumbnail
[OS] Chapter 05. 병행 프로세스와 동기화

Chapter 05. 병행 프로세스와 동기화 누워서 보는 운영체제 이야기 - 김주균 교수님 ▶ 병행(Concurrent) 같이 (메모리에) 존재하고 있다는 뜻 메모리에 다수의 프로세스가 같이 존재한다는 것과 같은 의미 CPU 하나가 있는 단일처리 시스템에서는 병행 프로세스 중 한 개만이 실제로 실행되지만, CPU 처리 시간을 효과적으로 나눔으로써 겉으로는 병행 프로세스들이 동시에 처리되는 것 ▶ 병렬(Parallel) 다중처리 시스템의 경우는 여러 개의 프로세스가 동시에 실행 ▶ 비동기적(Asynchronous) 프로세스들이 어떤 상태에 있는지, 어떤 자원을 가지고 있는지, 어디까지 실행됐는지 등에 대해 모른 체 실행되고 있음을 의미 # 5.1 병행 프로세스(Concurrent Proccess) ex1 ..

article thumbnail
[OS] Chapter 04. CPU 스케줄링

Chapter 04. CPU 스케줄링 누워서 보는 운영체제 이야기 - 김주균 교수님 현재 실행 중인 프로세스로부터 다른 프로세스로 CPU를 넘겨줘야 할 때, 기다리고 있는 여러 프로세스 중에 누구를 선택해야 할지에 대한 방식이나 기준이 있어야 하는데 이때 필요한 것이 스케줄링 기법임 여러 프로세스들이 번갈아 사용해야 하는 자원이 있을 경우, 주어진 시점에서 어떤 프로세스가 이 자원을 사용할 것인가를 결정하는 것을 스케줄링(Scheduling)이라 하며 그 자원이 CPU일 경우 CPU 스케줄링이 되는 것 # 4.1 스케줄링(Scheduling)의 단계 ▶ 스케줄링 시점을 기준으로 구분 장기(Long-term), 중기(Medium-term), 단기(Short-term) 스케줄링의 세 가지로 나눔 ▶ 장기 스..