프로세스 생성과 복사 fork()와 exec()
널널한 개발자 - 프로세스 생성과 복사 fork()와 exec()
프로세스와 가상메모리의 관계
os는 프로세스 단위로 파일, 자원의 접근을 제어하고 권한을 부여한다. 프로세스가 os에게 자원을 할당받으면 내부에 있는 쓰레드들도 자연스럽게 공유 받을 수 있는 상태가 된다.
프로세스는 가상메모리를 가지게 된다. 즉, 프로세스가 생성되면 독립적인 가상 메모리가 주어지게 된다.
프로세스의 내부
프로세스는 PID, 고유의 id를 가지게 되며, 프로세스 + PCB + VMS(가상 메모리 공간)은 하나의 세트다.
운영체제마다 각각 실행파일 포맷이 다르다
유닉스계열은 ELF 파일 형식 ...
컴퓨터가 3층집인건 알고 있죠?
널널한 개발자 - 컴퓨터가 3층집인건 알고 있죠?
컴퓨터 3층
유저모드(User)
커널모드(Kernel)
하드웨어(Physical) / 소프트웨어(Logical, Virtual)
컴퓨터 3층 내부에서는 통신을 한다
운영체제는 유저모드에 있는 애플리케이션을 서포트하고, 내부에 있는 커널모드와 하드웨어에는 관리 및 제어를 한다.
컴퓨터는 주변기기와 통신(입출력)을 한다. 즉, I/O를 말하는 것인데, 컴퓨터가 주변기기와 통신을 할 때 여러가지 매커니즘이 존재하는데 그럴때마다 인터럽트(Interrupt)가 발생한다.
Hello World 를 입력한다면?
컴퓨터 3층이 통신을 하는 예시이다....
프로세스 스케줄링
프로세스 스케줄링과 알고리즘
프로세스 스케줄링
스케줄링
여러가지 작업의 처리순서를 결정하는 것
예: 프로세스 스케줄링, 디스크 스케줄링
프로세스 스케줄링
주어진 프로세스가 여러 개인 경우, 프로세스 처리순서를 결정하는 것
상위단계 스케줄링: 시스템의 자원을 효율적으로 이용할 수 있도록 함
중간단계 스케줄링: 시스템에 대한 단기적인 부하를 조절하도록 함
하위단계 스케줄링
준비 큐에 있는 프로세스를 선택하여 사용 가능한 CPU를 할당(디스패치)하는 역할
수행 주체: 디스패처(dispatcher)
스케줄링 기본 목표
공정성: 모든 프로세스가 적...
프로세스와 쓰레드
프로세스와 쓰레드의 정의
프로세스
정적이였던 프로그램이 자원을 할당 받고 동작을 하는 것을 프로세스라 함
프로그램: 동작을 하지 않는 정적, 수동적 개체
프로세스: 동작을 하는 능동적 개체
자원: CPU, 메모리, 입출력장치, 파일 등
동작: 프로세스가 동작을 한다 -> CPU가 프로세스의 명령을 실행
운영체제(프로세스 관리자)가 처리하는 작업
프로세스를 생성 및 종료
프로세스를 실행시키기 위한 스케줄링 작업
프로세스의 상태 관리
프로세스의 구성
아래 두 절차를 마치면 하나의 프로세스가 만들어진다
메모리 구조: 프로그램 실행에 직접적으로 필요한 코드와 데이터...
27 post articles, 4 pages.