[운영체제] 주소 공간과 가상 메모리(Address Space, Virtual Memory)
·
공부/운영체제
주소 공간과 가상 메모리 주소 공간 (가상 주소 공간, VAS, Virtual Address Space) 의미 각 프로세스 당 주어지는 논리적인 공간 OS가 프로세스를 시작할 때 할당해주는 가상 메모리 공간 프로세스에서 사용 가능한 주소의 범위 프로세스가 참조하는 주소 OS가 제공하는 가짜 메모리 크기는 물리 메모리(RAM)의 크기와는 독립적 레지스터 크기에 종속적 운영체제는 프로세스에게 연속된 가상 주소 공간을 제공하고, 이를 필요한 크기의 물리 메모리 페이지로 매핑 메모리 공간의 낭비를 최소화 제공 메모리 32bit 시스템 보통 4GB 크기의 가상 메모리 영역을 할당 보통 하위 2GB를 유저 공간에, 상위 2GB는 시스템 공간에 사용 하지만 사용자에 의해 유저 공간을 3GB로 늘릴 수 있음(/set ..
[운영체제] PCB와 Context Switching
·
공부/운영체제
PCB와 Context Switching PCB (Process Control Block, 프로세스 제어 블록) 의미 특정 프로세스에 대한 정보를 담고 있는 자료구조 운영체제가 프로세스를 제어하기 위해 정보를 저장해 놓는 곳 프로세스의 상태 정보를 저장하는 구조체 운영체제는 PCB에 담긴 프로세스 정보를 이용하여 프로세스를 관리하고 제어 프로세스가 생성될 때 마다 고유의 PCB가 생성되어 메인 메모리에 유지되고 프로세스가 완료되면 제거 PCB는 프로세스의 중요한 정보를 포함하고 있으므로 일반 사용자는 접근하지 못하는 보호된 메모리 영역에 존재 진행 과정 프로그램 실행 프로세스 생성 프로세스 주소 공간 (코드, 데이터, 스택) 생성 이 프로세스의 메타데이터들이 PCB에 저장 상세 구조 Process id ..
[운영체제] 시스템 콜(System Call)
·
공부/운영체제
시스템 콜 시스템 콜 의미 운영체제가 제공하는 서비스를 사용하기 위한 프로그래밍 인터페이스 커널 모드(Kernel Mode)와 사용자 모드(User Mode)로 나뉘어 구동 운영체제에서 프로그램이 구동되는데 있어 파일을 읽어 오거나, 파일을 쓰거나, 혹은 화면에 메시지를 출력하는 등 많으 부분이 커널 모드를 사용 시스템 콜은 이러한 커널 영역의 기능을 사용자 모드가 사용 가능하게, 즉 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 사용할 수 있게 함 통상적으로 시스템 콜은 여러 종류의 기능으로 나뉘어져 있음 각 시스템 콜에는 번호가 할당되고 시스템 콜 인터페이스는 이러한 번호에 따라 인덱스 되는 테이블을 유지된다. 아래 그림은 open() 시스템 콜을 호출 했을 때 운영체제에서 어떻게 처리되는지를 보..
[운영체제] 인터럽트(Interrupt)
·
공부/운영체제
인터럽트 인터럽트란 CPU가 특정 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할 때 사용할 수 있는 기능 대부분의 컴퓨터는 한 개의 CPU를 사용하므로 한 순간에는 하나의 일 밖에 처리할 수 없기 때문에 어떤 일을 처리하는 도중에 우선 순위가 급한 일을 처리할 필요가 있을 때 대처할 수 있는 방안이 필요 인터럽트는 CPU가 프로그램을 실행하고 있을 때 입/출력 장치나 혹은 다른 예외상황이 발생하여 처리가 필요할 경우에 CPU에 알려서 처리하는 기술 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행중인 작업을 일시 중단하고, 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리 어느 한 순간에 CPU가 실행하는 명령은 하나인데 다른 장치와의 대화는 어떻게 이루어..
[운영체제] CPU 스케줄링 알고리즘
·
공부/운영체제
CPU 스케줄링 알고리즘 CPU 스케줄링 (CPU Scheduling) CPU core가 하나라면 한 번에 하나의 프로세스만 가능 CPU 이용율을 극대화하기 위해서는 멀티 프로그래밍이 필요함 이 때 필요한 것이 CPU 스케줄링 언제 어떤 프로세스에 CPU를 할당할지 결정하는 작업 목표 높은 CPU 이용률 주어진 시간에 많은 일 준비 큐에 있는 프로세스 적게 짧은 응답 시간 CPU 스케줄러가 스케줄링을 결정하는 경우 실행(running) 상태에서 대기(waiting) 상태로 전환(switching)될 때 실행(running) 상태에서 준비(ready) 상태로 전환(switching)될 때 대기(waiting) 상태에서 준비(ready) 상태로 전환(switching)될 때 종료(Terminated)될 때 ..
[운영체제] 프로세스와 스레드
·
공부/운영체제
프로세스와 스레드 프로세스 (Process) 운영체제로부터 자원을 할당받는 작업의 단위 이미지 출처 : https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html 프로그램(Program) 프로그램 : 컴퓨터에서 실행할 수 있는 파일 ex) *.exe, *.dmg 정적 프로그램 : 아직 파일을 실행하지 않은 상태 어떤 프로그램을 개발하기 위해서는 Java나 C언어 등의 언어를 이용하여 코드를 작성해서 완성함 즉 프로그램은 쉽게 말하자면 코드 덩어리임 프로세스(Process) 프로그램을 실행시켜 정적인 프로그램이 동적으로 변하여 프로그램이 돌아가고 있는 상태 컴퓨터에서 작업중인 프로그램을 의미 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개..
[운영체제] 메모리계층
·
공부/운영체제
메모리계층 메모리 CPU가 직접 접근할 수 있는 기억장치 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품 프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 함 메모리 계층 메모리 관련 세 가지 주요 특성인 용량, 접근 속도, 비용 간의 절충 관계를 파악해 필요에 따라 채택할 수 있게 나타낸 구조 컴퓨터의 설계에 있어 각각의 특징이 있는 서로 다른 여러 종류의 저장 장치를 함께 사용하여 최적의 효율을 낼 수 있게 함 상황에 맞게 여러 저장 장치를 각각 사용할 수 있도록 하여 저렴하고 성능 좋은 컴퓨터를 구현하는 설계 계층구조 아래로 내려갈수록 비트당 비용 감소 용량 증가 접근 시간 증가 (속도 느림) 처리기에 의한 메모리 접근 횟수 감소 계층구조 위로 올라갈수록 비트당 비용 증가 용량 감소 접..
[운영체제] 운영체제와 컴퓨터
·
공부/운영체제
운영체제와 컴퓨터 운영체제 (OS, Operating System) 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어 하드웨어를 관리하고 컴퓨터 시스템을 효율적으로 관리 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공 운영체제 종류 Windows : microsoft에서 개발한 운영체제 가장 인지도 높음 노트북 및 서버 시스템에서 주로 사용 그래픽카드와 같은 다양한 하드웨어 대응할 수 있음 인터페이스가 사용자 친화적 호환되는 응용 프로그램 많음 다른 OS에 비해 RAM을 많이 잡아먹으며 용량도 많이 차지함 masOS : apple 사에서 개발한 운영체제 mac 컴퓨터, 노트북에서 사용 시스템 안정성과 사용자..