전체 글

전체 글

    운영체제와 정보기술의 원리 6장. CPU 스케줄링

    CPU는 프로그램의 기계어 명령을 처리하는 장치이다. 프로그램이 메모리에 올라가면 PC에 수행할 코드의 메모리 주소값을 가지게 되고, CPU는 PC가 가리키는 주소의 기계어 명령을 하니씩 수행한다. 기계어 명령은 CPU 내에서 수행되는 명령, 메모리 접근을 필요로 하는 명령, 입출력을 동반하는 명령으로 나누어 볼 수 있다. CPU 내에서 수행되는 명령은 Add같은 것이 있다. 메모리 접근을 수행하는 명령은 Load, Store 명령이 있다. 입출력을 동반하는 명령은 디스크 읽기, 키보드 입력등이 있다. 다만 입출력 명령을 특권명령으로 규정하여 사용자 프로그램이 직접 수행할 수 없도록 하고, 운영체제를 통해 서비스를 대행하도록 한다. CPU 버스트와 I/O 버스트의 모습 사용자 프로그램은 CPU 작업과 I..

    [20분 책읽기] 더 나은 코딩을 위한,

    1장. 효율적으로 언어배우기 비교를 통한 배움과 역사를 통한 배움이 있다. 세상에는 0이 참인언어, 0이 거짓인 언어, 0이 참도 거짓도 아닌 언어가 존재한다. 그래서어떤 문제를 해결하기 위해 그 언어를 만들었을까? 언어 설계자의 의도를 이해해야한다. 또한 언어에 의존하지 보편적인 지식의 습득이 중요하다. 언어가 바뀌어도 통용될 수 있는 이해력을 기르자 2장. 프로그래밍 언어를 조감하다 케이블을 연결하다. 프로그램 내장방식으로 fortran의 등장에 대해 배우고, 프로그래밍 언어 탄생의 목적을 배웠다. 언어에 따른 편리함의 의미. 무엇을 편리하게 하고 싶은 것인가? 어떤 프로그램을 편리하게 만들고 싶은가? 기술도 도구이기 때문에 뭘 쓸 지보다는 무엇을 만들지를 먼저 고민해야하는 것처럼 언어 또한 도구였다..

    운영체제와 정보기술의 원리 5장. 프로세스 관리

    프로세스의 개념 프로세스란 실행중인 프로그램으로써 디스크에 존재하는 프로그램이 메모리에 올라가 있는 형태이다. 프로세는 CPU를 획득해 코드를 수행하기도 하고, CPU를 반환하여 입출력을 하기도 한다. 이때 프로세스의 문맥(Context)를 이용하여 현재 어떤 상태에서 수행되고 있는지 필요한 정보를 얻을 수 있다. 프로세스의 문맥은 프로세스의 주소 공간(코드, 데이터, 스택)을 비롯해 레지스터에 어떤 값을 가지고 있는지와 시스템 콜등을 통해 커널에서 수행한 일의 상태, 그 프로세스에 관해 커널이 관리하고 있는 정보등을 포함한다. 프로세스의 문맥을 구성하는 요소 다시 정리하면 프로세스의 문맥은 크게 하드웨어 문맥, 프로세스의 주소 공간, 커널상의 문맥으로 나눌 수 있다. 하드웨어 문맥은 CPU의 상태를 나..

    운영체제와 정보기술의 원리 4장. 프로그램의 구조와 실행

    프로그램의 구조와 인터럽트 프로그램이 CPU에서 명령을 수행하려면 해당 명령을 담은 프로그램의 주소 영역(코드, 데이터, 스택)이 메모리에 올라가 있어야 한다. 코드 영역은 작성한 프로그램 함수들의 코드가 CPU에서 수행할 수 있는 기계어 명령 형태로 변환되어 저장되는 부분이고, 데이터 영역은 전역 변수등 프로그램이 사용하는 데이터를 저장하는 부분이다. 스택 영역은 함수가 호출될 때 호출된 함수의 수행을 마치고 복귀할 주소 및 데이터를 임시로 저장하는 데에 사ㅣ용되는 공간이다. 프로그램은 메인함수에서 실행을 시작하고 다른 함수가 호출이 되면 그 위치로 점프해 그 함수를 실행하고 돌아오게 되는데 이때 돌아와야하는 지점을 스택에 저장한다. 인터럽트의 동작 원리도 함수의 호출과 비슷하다. 인터럽트가 발생하면 ..