컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고,
효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임이다.
운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공한다.
애플리케이션(Application)
Application software 혹은 Application program의 준말.
➡️ 응용 소프트웨어, 응용프로그램 (운영체제를 제외한 나머지 소프트웨어/프로그램)
대표적인 컴퓨터 운영체제로는 윈도우(Windows), 맥 OS(Mac OS), 리눅스(Linux), 유닉스(Unix) 등이 있다.
- 프로세서, 기억장치, 입출력 장치, 파일 및 정보 등의 자원을 관리
- 자원을 효율적으로 관리하기 위해 자원의 스케줄링 기능 제공
- 사용자와 시스템 간의 편리한 인터페이스를 제공
- 시스템의 각종 하드웨어와 네트워크를 관리 및 제어
- 데이터를 관리하고 데이터 및 자원의 공유 기능 제공
- 시스템의 오류를 검사 및 복구
- 자원 보호 기능 제공
- 입출력 보조 기능 제공
책내용
1. CPU,기억장치, 주변장치, 프로그램, 정보, 자료같은 컴퓨터자원들을 관리하는 기능
2. 프로세스와 쓰레드 스케줄링, 프로세스 생성과 제거, 프로세스의 시작, 정지, 재수행, 프로세스 동기화 및 통신 관리, 주기억 장치 관리를 위해 주기억장치 관리자와 협력하는 등의 프로세스 관리 기능
3. 메모리 상태 추적 및 기억, 메모리 할당 및 회수, 가상기억장치 및 페이징 장치 관리, 장치 관리자 또는 파일 관리자와 협력하는 기억장치 관리 기능
4. 입출력 장치 관리 기능으로 입출력 장치의 스케줄관리, 각종 주변장치의 스케줄링 및 관리
5. 파일의 생성과 삭제, 변경 유지들의 관리, 정보의 위치, 사용여부와 상태 등을 추적 관리하는 파일 관리 기능
프로세스가 실행되려면 반드시 메모리에 올라가야 한다.
프로세스가 '스와핑(swapping) 한다' 라는 것은 현재 메모리에서 잠깐 다른 저장공간(HDD나 SSD)으로 옮겨졌다가, 돌아왔다가 이런 식으로 실행에 따라 교체될 수 있다는 걸 의미한다.
주기억장치에 적재한 하나의 프로세스를 보조기억장치에 잠시 적재했다가 필요할 때 다시 꺼내서 사용하는 메모리를 교체하는 기법
👉 잠깐 어디 빼놓는 공간을 보조기억장치(secondary storage,Backing storage)라고 한다!
TIP
만약 좀 더 빠른 속도를 원한다면 우리는 메모리를 늘려서 Swapping이 덜 필요하게 만들면 된다!🤓
운영체제의 목적에는 처리능력 향상, 반환 시간 단축, 사용 가능도 향상, 신뢰도 향상 등이 있다. 처리능력, 반환시간, 사용가능도, 신뢰도는 운영체제의 성능을 평가하는 기준이 된다.
여기부터는 그냥 추가적으로 보면 좋은 내용!
CPU가 이전의 프로세스 상태를 PCB에 보관하고, 또 다른 프로세스의 정보를 PCB에서 읽어서 레지스터에 적재하는 과정
우리는 컴퓨터로 인터넷 하면서 음악도 듣고, 채팅도 할 수 있다.
동시에 처리되는 것처럼 보이지만, 우리가 느끼지 못할 뿐 time sharing이라고 해서 짧은 시간동안 왔다갔다 번갈아서 처리해주는 것이다.
이렇게 프로세스들이 교체되어 수행되고 나면 다시 다른 프로세스를 불러와야 하는데, 이를 위해서는 이전 작업에 대한 내용을 기억하고 있어야 한다.
여기서 프로세스 단위로 정보를 저장해주는 BLOCK을 PCB라고 한다.
그래서 프로세스가 스위칭 되어도 기억을 하고 이어서 실행할 수 있다.