Computer Science/Operating System14 [운영체제] 프로세스 관리 프로세스의 라이프 사이클 프로세스 생성 프로세스는 부모 프로세스가 자식 프로세스를 생성하여 트리 구조를 이룹니다. 프로세스의 생성은 오직 운영체제에 의해서만 이뤄집니다. 자식 프로세스는 부모 프로세스의 문맥을 복제해여 사용합니다. 운영체제에 따라 자식 프로세스의 자원을 운영체제로부터 바로 받을 수도 있고, 부모와 공유할 수도 있습니다. 자원을 공유하는 이유는 자원을 효율적으로 활용하기 위함입니다. 자식 프로세스를 생성하면 부모의 자원(코드, 스택, 데이터)를 복사하지 않고, 부모의 주소 공간을 공유합니다. 이후 자식 프로세스가 부모와 다른 자원을 필요하게 되는 시점에서 부모의 자원을 복사하여 독자적으로 사용합니다. 이것이 Copy-On_Write(COW)입니다. 프로세스 종료 프로세스가 마지막 명령을 수.. 2023. 2. 11. [운영체제] 프로세스와 스레드 프로세스란? 프로세스는 실행 중인 프로그램입니다. 어떠한 프로그램을 실행하게 되면 그것이 하나의 프로세스가 되고, 각 프로세스는 Memory에 독자적인 주소공간을 할당 받습니다. 프로세스 문맥(Context) 각 프로세스들은 시분할 방식으로 CPU를 사용합니다. 즉, 아주 짧은 시간 동안 번갈아가면서 사용합니다. 만약, 한 프로세스가 CPU를 반납했다가 다시 자신의 차례가 왔을 때, 이 프로세스는 지난번 턴에 어디까지 실행시켰는지 어떻게 알 수 있을까요? 이렇게 프로세스가 실행된 마지막 순간을 기록한 것이 문맥(Context)입니다. 이 문맥에는 PC(Program Counter)와 각족 register, 프로세스의 주소공간(code/data/stack), 그리고 해당 프로세스에 대한 커널 정보(PCB와.. 2023. 2. 10. [운영체제] 프로그램 실행 원리 입출력(I/O) 모든 입출력은 운영체제을 통해서 실행할 수 있습니다. 그래서 다른 프로세스들이 입출력을 하기위해서는 운영체제에게 요청을 해야합니다. 이 요청을 '시스템콜'이라고 합니다. 프로세스가 CPU에 인터럽트를 걸게되고, CPU 제어권이 운영체제에 넘어가고 mode bit이 0으로 바뀝니다. OS는 device controller에게 IO 요청을합니다. 동기 vs 비동기 입출력을 진행하는 방식은 '동기'와 '비동기'로 나눌 수 있습니다. '동기'란 어떤 일을 요청하고 그것의 결과를 확인해야 이어서 작업을 수행하는 것을 말하고, 반대로 '비동기'란 어떤 일을 요청해놓고 언젠가는 결과가 나올 것이라는 것만 기대하며 작업을 이어나가는 것입니다. 입출력에도 이 두가지 방법으로 입출력 방식을 구현할 수 있는.. 2023. 2. 2. [운영체제] 컴퓨터 시스템의 구조 CPU는 직장인, 프로세스들은 업무, 운영체제는 관리자 일하는 사람은 직장인 한 명 뿐이고, 해야할 일은 산더미이기 때문에, 운영체제가 직장인의 스케줄을 효율적으로 짜서 부려먹습니다. 이렇게 부려먹기 위한 구조 및 구성 요소들을 정리해보겠습니다. CPU cpu는 매 클럭마다 메모리에서 Instruction이라 불리는 기계어로 이뤄진 최소 작업단위를 가지고와서 실행합니다. 이때 CPU 안의 PC(ProgramCounter)라고 불리는 레지스트리에 어느 인스트럭션까지 읽었는지를 기록하고 있습니다. Mode bit CPU에는 현재 실행 중인 작업이 사용자 프로그램(프로세스)인지, 운영체제 코드인지를 나타내는 Mode bit이 있습니다. 이것이 0이면 모니터모드(= 커널 모드, 시스템 모드)이고, 1이면 사용자.. 2023. 1. 31. [운영체제] 컴퓨터 세계의 리더, OS 들어가며 CS 지식을 쌓기 위해서 KOPW(Korea OpenCourseWare)를 통해 이화여대의 반효경 교수님의 운영체제 강의를 듣기 시작하여, 강의를 듣고 느낀점을 조금씩 정리해보려고합니다. 오늘은 꼭 OS가 컴퓨터 세계의 불균형을 해결하는 리더 같어서 이에 대해 간략히 정리해봤습니다. OS는 누구인가? 들어가기에 앞서 기본적으로 운영체제는 소프트웨어와 하드웨어 사이에 위치하여, 둘 간의 효율적인 협력을 돕는일을 합니다. 간략하게는 아래와 같습니다. 하드웨어를 효율적으로 관리 프로세서, 기억장치, 입출력 장치(하드웨어 자원)등의 효율적 관리 어느 정도는 형평성 있는 자원 분배 시스템을 사용자가 편리하게 사용할 수 있게 한다. 운영체제는 사용자/프로그램들이 마치 자신들만이 컴퓨터를 사용하는 것처럼 느.. 2023. 1. 28. 이전 1 2 다음