분류 전체보기
-
CPU 스케줄링운영체제 2025. 12. 10. 22:33
[CPU 스케줄링이 나온 이유] 우리는 하나의 CPU가 여러 프로그램을 돌릴 수 있게 하는 것을 "멀티프로그래밍"이라고 했다. 그리고 이 멀티프로그래밍 상황에서 각 프로세스가 균일한 CPU 사용 시간을 보장받기 위해Context Switching을 지속적으로 하게 해주는 "멀티태스킹" 개념이 나왔다. CPU 스케줄링은 멀티태스킹을 가능하게 하는 핵심 기술이다.멀티태스킹을 위해 CPU 스케줄링이 나왔다고 봐도 무방하다. [선점 스케줄링 vs 비선점 스케줄링] 여기서 선점, 비선점의 주체는 OS 즉, 운영체제이다.대상은 현재 프로세스가 사용중인 CPU 즉, OS가 특정 프로세스가 사용중인(할당된) CPU를 빼앗을 수 있냐 없냐로 구분하는 것이다! 선점 스케줄링 (Preemptive)→ 현재 CPU를 사용하고..
-
Interrupt운영체제 2025. 12. 10. 01:10
인터럽트는 어떤 신호가 들어왔을때 CPU를 잠시 정지시키는 것을 말한다. 주로 프로그램 실행 중1) I/O 작업이 수반되는 연결된 하드웨어 장치에서 예외상황이 발생한 경우2) 프로세스 내에서 오류가 발생하는 경우 [Interrupt가 필요한 이유] [Interrupt Vector와 ISR] Interrupt Vector인터럽트 번호(Interrupt ID)에 대응하는 ISR 시작 주소를 가지고 있는 테이블OS가 관리하고 커널 영역에 있다인터럽트가 발생하면, CPU는 인터럽트 번호를 받고, 인터럽트 벡터를 참고하여 해당 인터럽트 처리 코드(ISR)의 시작주소를 찾는다.ISR인터럽트 처리 코드얘도 인터럽트 벡터랑 마찬가지로 OS가 관리하고 커널 영역에 있다. IV와 ISR 두 개 모두 언제나 RAM에 올라와..
-
Multi-Tasking운영체제 2025. 12. 6. 18:32
[멀티태스킹은 멀티프로그래밍 전제 하에 동작한다] 멀티태스킹은 여러 프로세스들이 강제로 균형있게 번갈아가며 실행될 수 있도록 하는 기법 따라서 멀티프로그래밍이라는 기반 위에서 멀티태스킹을 정의할 수 있다.→ 하나의 프로그램만 돌릴때는 프로세스들을 강제로 스위칭하는 멀티태스킹이 필요가 없기 때문이다. 두 개 이상의 프로세스를 실행할때각 프로세스들이 아주 짧은 시간(quantum time slice)동안만 실행되도록 하여하나의 프로세스가 CPU에 오랫동안 할당되어CPU를 선점하는 것을 방지하고이를 통해 여러 프로그램이 동시에 실행되는 것처럼 보이게 만드는 기법이다. → 이때 잘게 나뉘어진 프로세스 끼리 작업이 스위칭 되는 것을 문맥 교환(Context Switching) 이라고 한다. [멀티프로그래밍의 한계..
-
Multi-Threading운영체제 2025. 12. 6. 01:08
Thread는 하나의 프로세스 내에 있는 실행 흐름이다.멀티 스레드란 하나의 프로세스 안에 여러개의 스레드가 있는 것을 의미한다.따라서 하나의 프로그램에서 두 가지 이상의 동작을 동시에 처리하게 하는 것이 가능해진다. 웹 서버는 대표적인 멀티스레드 프로그램이다.사용자가 서버 데이터베이스에 자료를 요청하는 동안 브라우저의 다른 기능을 이용할 수 있는 이유도 바로 멀티 스레드 기능 덕분인 것이다.즉, 하나의 스레드가 지연되더라도, 다른 스레드는 작업을 지속할 수 있게 된다. [멀티 스레드의 장점] 1. 가벼움 일단 스레드는 프로세스보다 용량이 가볍다.생성 비용도 낮고 관리 비용도 낮다. 스레드는 프로세스 내에서 생성되기 때문에 스레드의 실행 환경을 생성하는 작업이 매우 간단하여 생성 및 종료가 빠르다.또한 ..
-
Multi-Programming운영체제 2025. 12. 5. 21:41
[Multi Process] 운영체제에서 하나의 프로그램에 대해 여러 개의 프로세스를 실행할 수 있게 하는 기술 하나의 프로그램이 실행되면 하나의 프로세스가 생성된다.하지만 부가적인 작업과 효율적인 처리를 위해 자식 프로세스를 생성해서 여러 프로세스로 프로그램을 실행하는 것이다. [Multi Process vs Multi-Processor]프로세스(Process)는 프로그램의 실행을 말하고프로세서(Processor)는 CPU 코어를 말한다.멀티 프로세스는 하나의 프로그램에서 여러 개의 프로세스를 실행하는 것을 의미하고,멀티 프로세서는 여러 개의 CPU 코어가 하나의 시스템에서 동시에 실행되는 것을 의미한다. 완전 초창기에 시스템은 단일 프로세스 시스템이었다.즉, 한번에 하나의 프로그램(프로세스)만 실행시..
-
System Call운영체제 2025. 12. 4. 00:43
[System Call도 결국 소프트웨어 인터럽트이다] 유저 프로그램이 커널 모드에서만 가능한 기능을 안전하게 사용할 수 있도록 도와주는 인터페이스유저가 커널 함수 호출을 위해 사용하는 커널 진입 인터페이스 유저 프로세스가 보내는 소프트웨어 인터럽트의 한 종류이다.우선 OS는 기본적으로 User 모드와 Kernel 모드로 나누어져있다. User Mode : I/O나 Protected Instruction을 포함해서 사용 시 문제가 될 수 있는 주소 공간에 접근 불가능Kernel Mode : I/O devices를 포함해서 모든 주소 영역에 접근 가능안전 상으로 User Mode에서는 제한적인 OS 함수 호출만 가능하다.따라서 항상 User Mode는 Kernel Mode에게 대신 해달라고 부탁해야한다.[..
-
세션 기반 인증 vs 토큰 기반 인증인증인가 2025. 11. 25. 21:17
[세션 기반 인증]서버가 인증을 위해 사용자 상태를 서버에 저장해두는 방식을 말한다.즉, 서버가 상태를 관리해야하는 Stateful 한 방식이다. [세션 기반 인증의 장점] 1. 세션 관리가 쉽다→ 세션 저장소에서 간단히 세션을 제거만 하면 로그아웃 처리가 가능하다 [세션 기반 인증의 단점] 1. 확장성 문제→ 사용자가 증가하면 세션 저장소가 병목 현상을 일으킬 수 있다.2. 상태 공유 및 동기화 문제→ 각 서버마다 세션 저장소에 대한 정보가 동일해야한다. 즉, 언제나 동기화되어야한다.[토큰 기반 인증] 세션을 사용하지 않고, 토큰으로만 인증을 할 수 있는 방식이다.서버가 상태를 관리하지 않으므로 Stateless한 방식이다.Stateless한 HTTP와 잘맞는다. [토큰 기반 인증의 장점] 1. 무상태..