▶ 프로그램 / 프로세스
1. 정적 프로그램 (Static Program)
프로그램은 컴퓨터에서 실행 할 수 있는 파일을 통칭한다.
지금 내 작업표시줄에 있는 애들이 다 프로그램이다.
아직 파일을 실행하지 않은 상태이기 때문에 정적 프로그램(Static Program),
줄여서 프로그램(Program) 이라고 부른다.
- 실행 중인 프로그램. 컴퓨터가 수행하는 하나의 작업 단위.
- 우리가 브라우저를 열어 웹사이트를 보는 것도 하나의 프로세스다.
▶ 프로세싱 (Processing)
- 데이터를 처리하고 변환하는 과정.
- 프로그램이 실행중인 것을 프로세싱중이라고 한다.
- 문서 편집 프로그램에서 글씨를 입력하고 수정하는 과정이 프로세싱이다.
▶ 멀티테스킹 (Multitasking)
- 하나의 시스템 또는 cpu가 여러 작업을 동시에 수행하는것
- 단, 동시에 처리가 되는것은 아니고 시분할 방식을 통해 동시에 처리되는것처럼 보이게 한다. (하나의 CPU가 여러 작업을 빨리빨리 번갈아 가면서 수행함)
- 운영체제가 프로그램도 켜고 있고, 소리도 켜고 있고, 시간도 보여주고 있고, 등등을 의미한다. (멀티프로세싱은 프로그램단위 / 멀티테스킹은 작업단위 시스템 범위 내의 단위이다.
- task가 작업이니깐. task는 큰 작업이다. '소리출력' 이게 큰 작업이고 이안에 있는 작은 연산들은 스레드 라고 함. 프린트에 인쇄시킬 때, 소리출력, 정보전송, 화면출력, 시간보여주기, 작업표시줄 보여주기 머 등등을 테스킹 하고 있는데 동시에 되고 있으니 멀티테스킹이다.
▶ 멀티프로세싱 (Multiprocessing)
- 여러 프로세스를 동시에 실행하는 것.
- 각 프로세스는 별도의 메모리 공간을 가짐.
- 영상 편집을 하면서 다른 프로그램으로는 문서를 작성하는 것. 두가지 작업이 각기 다른 프로세스로 실행됨.
- 여러개의 CPU가 여러 작업을 동시에 수행함. 크롬도 키고, 파이참도 키고, 카톡도 키고, 슬랙도 키고 이런거.
- 운영체제가 있기 전에는 싱글프로세싱밖에 안됐다. 하나의 작업밖에 할 수 없었다는 뜻.
- control alt tab 하면 여러개 프로그램 창 나오는거. 그걸 가능하게 해줬다. 운영체제가 스케줄링을 해주면서 가능하게 된 것임.
- 게임을 하면서 동영상을 인코딩하는 경우. 게임과 인코딩이 각각 별도의 프로세스로 실행됨.
▶ 멀티스레드 (Multithreading)
- 하나의 프로세스 내에서 여러 스레드를 동시에 실행하는 것.
- 스레드는 같은 메모리 공간을 공유.?
- 비디오 게임에서 그래픽을 렌더링하면서 동시에 소리를 재생하고 사용자 입력을 처리하는 경우. 각 작업이 별도의 스레드로 실행.
- 내가 공부도 하고, 잠도자고, 밥도 먹는것.
- 크롬 브라우저 하나 켜놓고 여러개의 사이트를 틀어놓는것. 크롬으로 유투브, 젭, 검색창 등등 여러개 킬 수 있는거.
- 웹 브라우저에서 여러 탭을 동시에 여는 경우. 각 탭이 하나의 스레드로 동작함.
▶ 스레드 (Thread)
- 정의 : 프로세스 내에서 실행되는 작은 작업 단위. 같은 프로세스 내의 다른 스레드와 메모리를 공유.
- 예시 : 워드 프로세서에서 타이핑하는 동시에 맞춤법 검사를 수행하는 것. 타이핑과 맞춤법 검사가 각기 다른 스레드로 동작함.
▶ 스케줄링 (Scheduling)
- 정의 : CPU가 어떤 프로세스나 스레드를 언제 실행할지 결정하는 것.
- 예시 : 여러 사람이 컴퓨터를 사용하면서 여러 프로그램을 실행하면, 운영체제는 각 프로그램이 CPU를 얼마나 사용할지 결정한다.?
- 작업에 필요한 자원을 언제 누가 어떻게 사용할지 결정해 주는 것
▶ 커널 (Kernel)
- 정의 : 운영 체제의 핵심 부분으로, 하드웨어와 소프트웨어 간의 상호작용을 관리.
- 예시 : 프로그램이 파일을 읽거나 쓰고 싶을 때 커널이 이를 중재해 실제 하드디스크 접근을 처리.
- 하드웨어와 응용 프로그램사이에서 인터페이스 역할 수행하기 위한 핵심 부분
▶ 터미널 (Terminal)
- 정의 : 사용자가 텍스트 명령어를 입력하고 결과를 출력받는 인터페이스.
- 예시 : 컴퓨터 화면에 텍스트만 나오는 명령 프롬프트
- 터미널: 사용자와 컴퓨터 간에 상호작용을 제공하는 인터페이스(win+R 실행 후 cmd 입력하면 나오는거. 아니면 vscode나 파이참에서 나오는 터미널.)
▶ 인터페이스 (Interface)
- 정의 : 사용자와 컴퓨터 시스템 간의 상호작용을 위한 경계면.
- 연결해주는 거.
- UI(User Interface) : 사용자와 어떠한 것(하드웨어/소프트웨어)을 연결해주는 매개체
▶ CUI (Character User Interface)
- 텍스트 기반의 사용자 인터페이스
- 사용자가 문자를 통해 명령을 수행하는 것을 의미
- 예시 : 터미널에서 명령어를 입력하여 프로그램 실행
▶ GUI(Graphic User Interface)
- 그래픽 기반의 사용자 인터페이스
- 사용자가 그래픽을 통해 명령을 수행하는 것을 의미
- 예시 : 윈도우 OS에서 아이콘과 창을 사용해서 프로그램을 실행하고 제어
'CS' 카테고리의 다른 글
[CS] OOP 객체지향 프로그래밍 (0) | 2024.07.30 |
---|---|
[CS] 소프트웨어 설계 (0) | 2024.07.29 |
[CS] 컴파일러/인터프리터/메모리영역 (0) | 2024.07.28 |
[CS] 자료형/자료구조 (0) | 2024.07.26 |
[CS] 운영체제 (0) | 2024.07.26 |