OS (5) 썸네일형 리스트형 [OS] 동기화 / Synchronization 공학 분야에서 경쟁 상태(race condition)란 둘 이상의 입력 또는 조작의 타이밍이나 순서 등이 결과값에 영향을 줄 수 있는 상태를 말한다. - 위키피디아 -멀티스레딩을 지원하는 컴퓨터에서는 경쟁 상태에 의해 영향을 받을 수 있다. 이를 해결하기 위한 적절한 방법이 필요하다. 경쟁 상태는 공유되는 자원을 조작하는 코드 구역에 의해 생길 수 있다. 이 코드 부분을 임계구역(critical section)이라고 한다. 경쟁 상태를 해결하기 위해서는 이 critical section에 오직 하나의 스레드만 접근할 수 있도록 해야한다. 이러한 특성을 상호 배제(mutual exclusion) 이라고 한다. 이 과정에서 동기화 기법이라고 하면 여러 개의 스레드가 경쟁 상태를 방지하며 공유되는 자원을 사용.. [OS] 멀티스레딩 / 동기화의 필요성 Multiprogramming 에서 여러 process들이 동시에 일을 한다(엄밀히 말하면 동시에 일을 하는 것처럼 보인다). 하나의 process 내에서는 여러 개의 thread들을 이용한다. thread 들은 그러면서도 독립적인 stack과 cpu register값들을 유지한다. 즉, 독립적인 실행흐름을 유지한다. 여러 개의 thread들을 사용하는, 여러 개의 thread들이 협력하도록 허락하는 이유는 다음과 같은 것들이 있다.속도가 빨라진다.자원을 공유하면서 입출력과 계산을 겹쳐 사용할 수 있다. 멀티프로세서를 이용해 프로그램을 병렬적인 여러 개의 조각들로 잘라서 실행할 수 있다.자원을 공유한다자원을 공유하면서 자원을 낭비하지 않고 효율적으로 사용할 수 있다.예시) 웹서버멀티 프로세스)클라이언트들.. [OS] Interrupts / 인터럽트 하드웨어는 시스템 버스를 통해 CPU에게 신호를 보내며 언제든 인터럽트를 발생시킬 수 있다. CPU는 인터럽트되면 하던 일을 멈추고 실행흐름을 정해진 위치(Interrupt sevice routine이 위치한 시작 주소 위치)로 옮긴다. 인터럽트 처리가 끝나면(service routine) 이 끝나면 CPU는 인터럽트되었던 execution을 다시 실행한다. 그 흐름은 다음과 같다.일반적으로 interrupt vector에 각각의 interrupt service routine 에 따른 시작 주소가 저장되어 있다. interrupt request 에 따라 다른 routine 을 제공한다.interrupt 시에 interrupt 당한 모든 상태들을 저장해야한다. 만약 service routine 중에 바뀌는.. [OS] 페이지 페이지(Page)란?페이지는 현대 운영체제에서 메모리 관리를 위한 기본 단위이다. 물리적 메모리(RAM)와 가상 메모리를 관리할 때, 메모리를 페이지라는 고정 크기의 블록으로 나누어 사용한다. 예를 들어, 페이지 크기가 4KB라면 프로세스가 16KB의 메모리를 요청할 경우, 4개의 페이지로 나뉘어 물리 메모리의 프레임에 할당된다.페이지의 기본 개념페이지: 가상 메모리의 고정된 크기 단위로, 일반적으로 4KB 또는 8KB 크기를 갖는다.프레임: 물리 메모리의 페이지와 동일한 크기의 블록이다. 가상 메모리의 페이지는 물리 메모리의 프레임과 대응된다.페이징 기법: 운영체제는 가상 메모리를 페이지 단위로 나누어 물리 메모리의 프레임에 할당한다. 만약 물리 메모리가 부족할 경우, 일부 페이지는 디스크의 스왑 공간.. [OS] 프로그램, 프로세스, 쓰레드 프로그램(Program)프로그램은 특정 작업이나 계산을 수행하기 위해 작성된 일련의 명령어 집합을 말한다. 컴퓨터는 사람이 이해할 수 있는 고수준 프로그래밍 언어(C, Python, Java 등)로 작성된 코드를 실행하기 위해, 이를 컴파일러나 인터프리터를 통해 기계어로 변환하여 처리한다. 이러한 명령어들은 사용자가 요구하는 기능을 수행하는 다양한 소프트웨어로 구현된다. 즉 정적인 상태로 저장된 코드이며 실행하면 프로세스가 된다. 예시:텍스트 에디터: 사용자가 텍스트를 입력하고 편집할 수 있도록 명령어를 구성한 프로그램.웹 브라우저: 웹 페이지를 불러오는 기능을 가진 명령어 집합.게임: 사용자 입력에 반응하여 게임 환경을 조작하는 코드 모음.프로세스(Process)프로세스는 실행 중인 프로그램을 의미한다.. 이전 1 다음