본문 바로가기

컴퓨터전공기초4

25. 프로세스 - 우선순위 스케줄링 시스템 콜 0. 시작하기전에 - 이번 포스팅에서는 프로세스 스케줄링과 관련된 시스템 콜에 대해서 배울 예정이다. 1. 우선순위 기반 스케줄러 (priority based) - 우선순위를 기반으로 프로세스의 실행순서를 정하는 스케줄링 방식이다. a) 리눅스는 우선순위에 크게 영향을 받지 않는다. - 리눅스는 우선순위에 크게 영향을 받는 스케줄링 방식을 사용하지 않는다. - 당연히, 우선순위를 확인하고 이에 따라 실행되도록 하는 시스템 콜이 존재하지만, b) 그렇다면 왜 리눅스는 우선순위 기반의 스케줄링을 지원하는가? - 리눅스 운영체제 자체가 우선순위에 크게 중점을 두지 않은 방식으로 스케줄링을 하도록 설계되어있다. - 그렇다면 왜 우선순위 스케줄링의 시스템 콜을 제공할까? 이는 POSIX 규격으로 운영체제를 표준화.. 2021. 9. 17.
21. 프로세스 - wait & 쉘 만들기 0. 시작하기전에 - 이전에 배운 fork()와 exec()에 대해서 간략하게 복습해보자. ▶ fork() - 기존의 프로세스를 복사하여 새로운 프로세스를 생성한다. - 기존의 프로세스를 부모 프로세스, 새로 생성된 프로세스를 자식 프로세스라고 한다. - 이로 인해서, 프로세스간의 계층이 생성된다. ▶ exec() - 기존의 프로세스를 재활용하는 방식으로 새로운 프로세스를 만든다. - 기존 프로세스의 Text, BSS, Data 메모리를 새로운 코드이미지로 덮어 씌워 새로운 프로세스를 생성한다. - 여기서 한가지 의문점이 생길 수 있다. 왜 프로세스를 만드는 방식을 fork()와 exec(), 두가지가 필요할까? 1. 리눅스의 프로세스 생성 방식 - fork()를 사용하든, exec()를 사용하든 리눅스.. 2021. 9. 16.
16. CPU 내부구조 - CPU 설계방식 0. 시작하기전에 - 이전 포스팅에서 명령어의 구조에 대해서 알아 보았다. - CPU에서는 이 명령어를 실행하기 위해, 다양한 레지스터를 이용한다. - 명령어에 따라 사용하는 레지스터가 다를 것이고, 필요한 과정이 다를 것이다. - 그렇다면 이 레지스터는 어떤 구조로 설계되어 있을까? 라는 질문이 생길 수 있다. - CPU의 설계방식에 대해 이해하면, 이 질문에 대답할 수 있다. 1. CPU 설계방식 - CPU를 설계하는 방식에는 대표적으로 2가지가 있다. ▶ CISC (= Complex Instruction Set Computer) - 소프트웨어에 중점적이다. ▶ RISC (= Reduced Instruction Set Computer) - 하드웨어에 중점적이다. - 위의 두가지 방식은 CPU를 설계 .. 2021. 8. 11.
15. CPU 내부구조 - 명령어의 구조 0. 시작하기 전에 - 이전 포스팅에서 CPU의 내부 구조와 동작 방식에 대해서 알아보았다. - CPU의 동작 방식을 알기 위해서, 명령어를 처리하는 과정을 예시로 알아 보았는데, - 이번 포스팅에서는 CPU의 명령어가 어떻게 구성되어 있는지 알아 볼 예정이다. 1. 명령어(Instruction) 형식의 이해 - 이전 포스팅에서 CPU의 내부 동작에 대해서 알아보았다. - 그 과정에서 여러가지 레지스터를 통해, 주기억장치에 있는 명령어를 가져와서 실행했다. - 주기억장치에 올라와 있던 그 명령어의 형식에 대해서 알아보자. a) 명령어의 구성 - 명령어는 연산자(operation 또는 op-code)와 피연산자(operand)로 구성되어 있다. ▶ operation - 어떤 행위를 가리키는 역할이다. ▶ .. 2021. 8. 10.