1. 운영체제
1) 운영체제
- 운영체제(operating system)
- 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 프로그램
- 커널(kernel)에 적재됨자원(resource)
- 프로그램 실행에 필요한 요소
- CPU, 메모리, 보조기억장치, 입출력장치 등과 같은 컴퓨터 부품들이 해당
- 응용 프로그램(application software)
- 사용자가 특정 목적을 위해 사용하는 일반적인 프로그램
- 워드 프로세서, 인터넷 브라우저, 메모장, 게임 등이 해당
- 운영체제의 역할
- 지속적인 메모리 자원 관리
- 각 응용 프로그램들의 메모리 주소가 겹치지 않도록 적당한 공간에 프로그램을 적재
- 실행할 프로그램을 메모리에 적재, 더 이상 실행되지 않는 프로그램을 메모리에서 삭제
- CPU 자원 할당
- 응용 프로그램이 실행되려면 CPU가 반드시 필요
- 어떤 프로그램부터 CPU를 사용할지
- 얼마나 오랫동안 CPU를 사용할지
- 어떤 한 프로그램이 CPU를 독점하게 되면 다른 프로그램들은 올바르게 실행될 수 없음
- 따라서 최대한 공정하게 CPU 자원을 할당
- 따라서 최대한 공정하게 CPU 자원을 할당
- 응용 프로그램이 실행되려면 CPU가 반드시 필요
- 지속적인 메모리 자원 관리
2) 커널
- 커널(kernel)
- 운영체제의 핵심 기능을 담당
- 운영체제가 설치된 모든 기기에는 커널이 존재
3) 이중 모드와 시스템 호출
- 응용 프로그램의 동작
- 운영체제는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 방지하여 자원을 보호
- 응용 프로그램의 요청을 받은 운영체제는 자원에 접근하여 요청받은 작업을 수행
- 이중 모드(dual mode)
- CPU가 명령어를 실행하는 모드를 사용자 모드와 커널 모드로 구분하는 방식
- 사용자 모드(user mode)
- 운영체제 서비스를 제공받을 수 없는 실행 모드 => 자원에 접근할 수 없음
- 사용자 모드로 실행 중인 CPU는 입출력 명령어와 같이 하드웨어 자원에 접근하는 명령 실행 X
- 일반적인 응용 프로그램은 기본적으로 사용자 모드로 실행
- 운영체제 서비스를 제공받을 수 없는 실행 모드 => 자원에 접근할 수 없음
- 커널 모드(kernel mode)
- 운영체제 서비스를 제공받을 수 있는 실행 모드 =>자원에 접근 가능
- CPU가 커널 모드로 명령어를 실행하면 자원에 접근하는 명령어를 비롯하여 모든 명령 실행 가능
- 커널 영역의 코드를 실행할 수 있음
- 시스템 호출(system call)
- 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 방법
- 사용자 모드에서 커널 모드로의 전환
- 소프트웨어 인터럽트로 동작
- Ex) 하드 디스크에 데이터를 저장하려 할 때
- 사용자 모드에서 하드 디스크에 데이터를 저장하는 시스템 호출을 발생시켜 커널 모드로 전환
- 운영체제 내의 하드 디스크 저장 코드를 실행하여 하드 디스크에 접근
- 작업 완료 후 다시 사용자 모드로 복귀
- 보통의 응용 프로그램들이 시스템 호출을 빈번하게 사용함
- Ex) 하드 디스크에 데이터를 저장하려 할 때
- 운영체제 서비스를 제공받기 위해 커널 모드로 전환하는 방법
4) 운영체제의 핵심 서비스
- 프로세스 관리
- 프로세스(process): 실행 중인 프로그램
- 운영체제는 다양한 프로세스를 효율적으로 관리하고 실행해야함
- 한 프로세스를 실행하다가 다른 프로세스로 실행을 전환
- 여러 프로세스가 동시에 실행되는 환경에서는 프로세스 동기화가 필요
- 교착 상태 해결
- 자원 접근 및 할당
- CPU
- CPU 스케줄링을 통해 프로세스들에게 CPU를 공정하게 할당
- 메모리
- 프로세스에게 어떤 메모리를 할당하는지, 메모리가 부족한 경우 극복
- 입출력장치
- 하드웨어 인터럽트 요청을 처리
- 인터럽트 서비스 루틴 제공
- CPU
- 파일 시스템 관리
- 보조기억장치 속 데이터를 파일과 디렉터리로 관리
'컴퓨터 구조 &운영체제 > 컴퓨터구조 + 운영체제' 카테고리의 다른 글
프로세스와 스레드 (1) | 2024.02.20 |
---|---|
입출력장치 (0) | 2024.02.13 |
메모리와 캐시 메모리 (0) | 2024.02.07 |
CPU 성능 향상 기법 (1) | 2024.02.06 |
CPU의 작동 원리 (0) | 2024.02.05 |