rosieblue
article thumbnail
[OS] 스레드(Thread)
🖥️ Computer Science/OS 2023. 5. 10. 17:36

스레드(Thread)란? 스레드(Thread)는 프로세스(Process) 안에서 실제로 작업을 수행하고 있는 하나의 주체이다. 프로세스가 실행되고 있는 프로그램 (참고 : [🖥️ Computer Science/OS] - [OS] 프로세스 vs 프로그램)이라면, 스레드는 프로세스 안에서 진행되는 실행의 흐름이다. 스레드는 오직 한 프로세스 안에만 속해있다. 스레드는 프로세스의 특징을 지니기 때문에 경량 프로세스(lightweight process)라는 이름을 가지고 있기도 하다. 그렇다면 프로세스만 사용하면 되지 스레드까지 귀찮게 또 만들어서 사용하는 것일까? 예시를 들어보면 다음과 같다. (이 예시는 인파님 블로그의 설명을 참고하였음을 밝힌다.) 예를 들어 크롬이라는 프로세스가 실행되고 있다고 하자. 이..

article thumbnail
[OS] 프로세스 Process (1) - 프로세스 개념, 포그라운드 프로세스 vs 백그라운드 프로세스, ps 명령어
🖥️ Computer Science/OS 2023. 4. 5. 15:10

프로그램 (Program) 프로그램이란 우리가 많이 쓰듯 그저 하나의 앱?이라고 생각하면 편하다. 앱이라는 용어가 사실 여기서 정확하진 않지만 비전공자분들한테는 이렇게 설명하면 쉬울 것 같다. 예를 들어 크롬이나 노션, 워드 같은 것들이 다 프로그램이다. (exe같은 거 붙여진 애들!! exe말고 다른 확장자도 가능~) 이러한 프로그램을 설계할 때는 보통 C언어와 같은 프로그래밍 언어를 이용하므로 프로그램은 어떠한 테스크를 수행할 수 있는 그저 코드 덩어리라고 보면 편하다. 그렇다면 프로그램과 프로세스의 차이는 무엇일까? 프로세스 (Process) 이때 프로세스란 실행되고 있는 프로그램이라고 생각하면 된다. 프로그램은 아직 실행되지 않은 정적인 코드 덩어리라면, 프로세스는 실행되고 있는 동적인 아이라고 ..

article thumbnail
[System] 컴파일 과정의 링크(Link)와 오브젝트 파일(Object File)

C코드나 어셈블리 코드를 컴파일 할 때 결과를 지정할 때 Object File이 될 때도 있고,,, 기계어 코드가 될 때도 있고(?)해서 도대체 둘의 차이가 뭔지, 그리고 오브젝트 파일이라는게 정확하게 뭘 지칭하는지 궁금해서 정리해보려고 한다. 그리고 중간에 나오는 '링크'의 개념을 다뤄보고자 한다. 오늘 다룰 것은 다음과 같다 기계어 코드 vs 오브젝트 코드 (vs 어셈블리 코드) 링크(Link)의 개념 gcc vs as 기계어 코드 vs 오브젝트 코드 (vs 어셈블리 코드) 는 아래 글을 참고하였다. https://stackoverflow.com/questions/466790/assembly-code-vs-machine-code-vs-object-code#:~:text=Object%20code%20i..