프로세스

    [Operating System] 프로세스 실행

    for and exec 함께 사용하지 않은 이유 fork와 exec을 분리시켜 새 프로그램을 실행하기 전 다양한 설정과 IO redirection과 pipe를 가능하게 하려고 프로세스 실행 OS가 프로그램 실행을 시작하려면 process list에 새로운 항목을 생성한다. 이후 메모리 페이지 할당. 디스크에있는 프로그램 실행파일을 메모리페이지에 로드. 진입점으로 포인터를 위치한다. 문제점 프로세스가 원치 않는 일을 하지 않는다는 보장할 수 있는가? 프로세스 실행 시 OS가 이를 중단시키고 다르 프로세스를 실행시킬수 있는가?(time sharing) OS가 실행 프로그램 제어못하면 OS가아니라 라이브러리 문제1 : 제한된 연산 프로세스가 특수한 형태의 연산을 수행시키려면 ? IO, 메모리 접근 프로세스에게..

    [Operating System] 프로세스

    Process / Program 프로그램 disk에 위치한다. 프로세스 disk에 위치한 program file을 메모리에 올린 것이다. runnable program. 프로세스의 구성 프로세스는 기본적으로 메모리에 위치한다. Stack, Heap, Data, code 영역으로 구분된다. 0번지는 stack의 처음이며, 끝은 code의 끝이다. process 는 memory 외에도 register도 있다. program counter, stack pointer 등이 있다. pc는 다음 실행 명령어 가리키며 sp 는 stack내의 특정 공간 위치 저장해준다 프로세스 생성 fork와 같은 시스템콜을 사용해 프로세스를 생성한다. 프로세스 생성 = 프로그램을 메모리로 load 하는 작업 (프로세스의 주소공간으로..