운영체제
-
프로세스 동기화운영체제 2024. 2. 18. 17:45
Race condition(경쟁 상황) 동시에 여러 개의 프로세스가 동일한 데이터에 접근하여 변경하고, 그 결과가 접근 발생 순서에 의존하는 상황 이 상황을 방지하기 위해 한 순간에 하나의 프로세스만 데이터를 변경하도록 보장해야 하며, 프로세스들이 동기화되도록 할 필요성 critical section 문제 각 프로세스는 자신의 코드 안에 임계 구역(critical section)을 포함하고 있고, 그 안에서 다른 프로세스와의 공유 자원을 변경하는 등의 작업 수행 한 프로세스가 자신의 임계 구역에서 수행하는 동안 다른 프로세스는 그들의 임계 구역 안에서 실행할 수 없다. 각 프로세스는 임계 구역으로 진입하기 위한 허가 요청을 하는 코드인 entry section과 exit section이 있다. criti..
-
Threads 스레드운영체제 2024. 2. 18. 14:48
Thread 스레드는 CPU 이용의 기본 단위 스레드는 같은 프로세스에 속한 다른 스레드와 코드, data section 등을 공유한다. Multicore Programming single core 시스템 상에서 concurrency는 단순히 시간에 따라 스레드가 교대로 실행 되는 것을 의미(concurrent 병행 실행) 멀티 코어 시스템에서는 각 코어에 스레드들을 배정하므로 스레드들이 병렬적으로 수행될 수 있다. 스레드 풀 웹 서버는 요청을 받을 때마다 새로운 thread를 생성하게 되는데 생성 시에 일정 시간이 소요되고, 모든 요청마다 생성하므로 동시에 실행 가능한 최대 스레드 수를 정해야 한다. 따라서 스레드 풀을 활용해 일정 수의 스레드를 미리 pool로 만들어 놓고, pool에 있는 스레드들로..
-
프로세스운영체제 2024. 2. 18. 14:11
01. process? 프로세스는 실행 중인 프로그램이다. 프로세스는 program counter(pc), process stack, data section, heap을 포함한다. 프로그램은 디스크에 저장된 파일 같이 수동적 존재이고, 프로세스는 다음 실행 명령어를 지정하는 pc와 관련 resource set을 가진 능동적 존재이다. 프로그램이 메모리에 로드되면 프로세스가 된다. Process Control Block(PCB) PCB는 특정 프로세스 관련 정보를 갖고 있다. Process state : new, ready, running, wating, terminated 등의 프로세스 상태 Program Counter : 이 프로세스가 다음으로 실행할 명령어의 주소 가리킴 CPU Register CPU..
-
CH01. 운영체제란? (공룡책)운영체제 2024. 2. 10. 20:27
운영체제가 하는 일? 컴퓨터의 하드웨어를 관리하는 소프트웨어 user와 하드웨어 사이 중간 역할을 하며 응용 프로그램 간의 하드웨어 사용을 제어하고 관리 컴퓨터 실행 과정 중 항상 수행되는 프로그램으로 커널이라고도 불림(운영체제의 핵심 부분 = 커널) Bootstrap program 컴퓨터가 켜질 때 가장 처음 실행되는 프로그램 운영체제(커널)을 메모리에 로딩해주는 역할 Interrupt 하드웨어는 시스템 버스를 통해 cpu로 interrupt를 발생시킬 수 있음 폰 노이만 architecture 명령어들로 이루어진 instruction set을 메모리에 로딩 후 메모리에 올라와 있는 명령어들을 cpu로 하나씩 fetch 시켜 실행(execute)하는 구조 User mode / Kernel mode us..