profile
It's me, jkeum!

[OS] Process

Process 컴퓨터가 처음 나왔을 때는 컴퓨터가 있으면 작업이 하나가 들어와서 처리되고, 그 작업이 끝나고 나면 또 그 다음 작업이 들어와서 처리되는 방식이었다. 작업이 입출력 등의 일을 하는 중에는 CPU가 놀고 있게 되어서 낭비가 있었다. 이를 해결하고자 메모리에 여러 프로그램을 올려두고 그걸 동시에 실행시키려고 하니, CPU가 하나라서 불가능했다. 하지만 Time Sharing(시분할) 방식을 쓰면 여러 작업을 동시에 실행시킬 수 있다. 실제로는 CPU에서 프로세스를 동시에 실행시키는 게 아니지만, 시간 단위가 ns로 굉장히 짧아서 time sharing 방식을 사용하면 동시에 실행하는 것처럼 보인다. The Process 프로세스는 실행 중인 프로그램을 의미하며, 하나의 독립된 실행단위이다. 프로세스의 활동 상태를 program counter(PC)와 프로세서의 register의 내용으로 표시한다. PC는 프로그램이 실행되고 있는 code 영역을 가리키고

2022년 11월 27일
·
1개의 댓글
·

[Philosophers] Day 05. 보너스 파트 함수 공부 - Semaphore

허용 함수 memset, printf, malloc, free, write, fork, kill, exit, pthreadcreate, pthreaddetach, pthread_join, usleep, gettimeofday, waitpid, semopen, semclose, sempost, semwait, sem_unlink 함수 설명 sem 함수 #include sem_open 세마포어를 초기화하고 여는 함수이다. 함수 원형 semt semopen(const char name, int oflag, ...); const char *name : 세마포어 객체에 이름을 지정하는 문자열 int oflag : 세마포어를 생성하는지 혹은 접근만 가능한지 여부를 설정하는 값 oflag의 값은

2021년 6월 21일
·
0개의 댓글
·

[Philosophers] Day 02. 프로세스(Process)와 스레드(Thread)

프로세스와 스레드 프로그램(Program) 우선 프로그램이 무엇인지 찾아보았다. 구글링하면 다음과 같은 정의들이 나온다. 프로그램은 프로그래밍된 결과물, 사용자의 명령에 반응하는 소프트웨어, 컴퓨터를 실행시키기 위한 일련의 순차적으로 작성된 명령어 모음이다. 이번 과제에서도 philo라는 이름의 프로그램을 만든다. 프로그램은 하나의 코드 덩어리라고 볼 수 있다. 프로세스(Process) 프로세스를 구글링하면 다음과 같은 정의들이 나온다. 프로세스는 컴퓨터에서 연속적으로 실행되고 있는 프로그램, 메모리에 적재되어 CPU에서 실행 중인 프로그램이다. 프로세스는 프로그램을 실행한 상태이다. 프로그램은 정적인 파일이고, 그 정적인 상태의 프로그램을 실행해서 동적인 상태로 만들면 프로세스가 된다. 스레드(Thread) 스레드를 구글링하면 다음과 같은 정의들이 나온다. 스레드는 **프로세스 내에서 실행되는 흐름의

2021년 6월 10일
·
0개의 댓글
·