CS/운영체제 (5) 썸네일형 리스트형 가상 메모리와 물리 메모리 가상 메모리( = 논리 메모리)가상 메모리는 실제 전체 프로세스의 메모리 중에서 초기에 필요한 메모리만 할당하는 것을 말한다.장점물리 메모리의 크기보다 큰 프로그램들의 실행을 가능하게 한다.더 많은 프로그램을 동시에 실행할 수 있기 때문에 CPU 이용률과 처리율이 높아진다. swap에 필요한 입출력이 줄어들기 때문에 프로그램들이 빠르게 실행된다. (프로그램이 필요로 하는 데이터 중 일부만 주기억장치에 올라가 있기 때문에, 필요하지 않은 데이터는 보조저장장치에 남아있게 된다. 따라서 주기억장치와 보조저장장치 사이를 주고받아야 하는 데이터의 양이 줄어들어 입출력 작업이 줄어들게 된다.)가상메모리의 구조가상 메모리는 불연속 메모리 할당 방식을 취한다. 이것에 대한 정보는 길어지기 때문에 간단하게.. 동기와 비동기, Blocking과 Non-Blocking 여러 작업의 수행 방식을 알아보자!동기 vs 비동기메소드를 실행시킴과 동시에 반환 값이 기대되는 경우를 동기라고 표현하고 그렇지 않은 경우에 대해서 비동기라고 표현한다. 동시에라는 말은 실행되었을 때 값이 반환되기 전까지는 Blocking되어 있다는 것을 의미한다.비동기의 경우, Blocking되지 않고 이벤트 큐에 넣거나 백그라운드 스레드에게 해당 task를 위임하고 바로 다음 코드를 실행하기 때문에 기대되는 값이 바로 반환되지 않는다. 동기와 비동기의 판단 기준은 두 개 이상의 작업 시간을 맞추는지 아닌지이다.동기(syncronous)동기란 여러 작업이 있을 때 서로 시간을 맞춰야 하는 것을 말한다.먼저 시작 시간 또는 종료 시간을 동일하게 맞추는 경우가 있다 (다중 CPU에서 병렬처리)또한 하나의.. 멀티 프로세스 vs 멀티 스레드 멀티 프로세스 멀티 프로세스는 여러개의 프로세스를 사용해서 작업을 병렬적으로 수행하는 것이다. 장점 독립된 구조로 안전성이 높다는 장점이 있다. 프로세스 중 하나에 에러가 발생하여도 다른 프로세스에 영향을 주지 않는다. 예를 들어 하나의 탭에서 문제가 발생하여도 다른 탭에는 영향을 주지 않는다. 문제점 독립된 메모리 영역이기 때문에 작업량이 많을수록(Context Switching시 캐시 메모리 초기화가 필요) 오버헤드가 발생하여 성능저하가 발생 할 수 있다. 프로세스 사이의 통신이 복잡하다. 멀티스레드 멀티스레드는 여러개의 스레드를 사용해서 작업을 병렬적으로 수행한다. 장점 시스템 자원소모 감소 (자원의 효율성 증대) 프로세스를 생성하여 자원을 할당하는 시스템 콜이 줄어 자원을 효율적으로 관리할 수 있.. 프로세스와 프로세스 메모리 블록(PCB)의 구조 저번에 프로세스와 스레드의 차이를 다루었다. 여기서 프로세스는 프로그램이 실행될 때의 작업의 단위라고 하였는데 프로세스가 생성될 때는 프로세스 메모리 블록이라고 하는 PCB도 생성이 된다. 그리고 이 PCB는 프로세스가 완료되면 소멸된다. 프로세스와 PCB에 대해서 자세히 알아보자! ⭐프로그램 실행 과정 프로그램이 실행될 때 보조기억장치에 있는 프로그램으로부터 프로세스 이미지를 생성하는데 운영체제가 이 생성된 프로세스 이미지를 주기억장치로 적재시켜 사용한다. 프로세스 이미지에는 코드 영역, 데이터 영역, 스택 영역, 힙 영역이 포함된다. 즉 코드와 데이터의 초기상태가 포함되어있다. CPU는 프로세스 이미지의 내용을 참조하여 프로세스가 초기화되고 프로그램을 실행한다. 그리고 이 실행이 시작될 때 PCB가 .. 프로세스와 스레드의 차이 1. 프로세스 프로세스는 운영체제로부터 자원을 할당받은 작업의 단위 프로그램은 아직 실행되지 않은 파일 그 자체를 말한다. 윈도우의 *.exe 파일이나 MacOS의 *.dmg 파일 등등 사용자가 눌러서 실행하기 전의 파일을 말한다. 쉽게 말해서 그냥 코드 덩어리다. 운영체제(OS)는 정적인 상태의 프로그램을 실행하고자 할 때 메모리 영역에 할당한다. 이때 이 프로그램이 동적인 상태인 프로세스가 된다. 2. 스레드 스레드는 프로세스가 할당받은 자원을 이용하는 실행흐름의 단위 과거에는 이 프로그램을 실행할 때 프로세스 하나만을 가지고 실행했지만 프로그램이 복잡해지면서 어려움이 생겼다. 따라서 프로세스와는 다른 더 작은 실행 단위 개념이 필요하게 되었고, 이 개념이 바로 스레드다. 스택을 스레드마다 독립적으로.. 이전 1 다음